如何将此代码从provider更改为Getx:
return ChangeNotifierProvider<UserProvider>(
lazy: false,
create: (BuildContext context) {
final UserProvider provider =
UserProvider(repo: repo1, psValueHolder: valueHolder);
return provider;
},
我在其他地方也有一些MultiProvider:
child: MultiProvider(
providers: <SingleChildWidget>[
ChangeNotifierProvider<UserProvider?>(
lazy: false,
create: (BuildContext context) {
return UserProvider(
repo: userRepository, psValueHolder: valueHolder);
}),
ChangeNotifierProvider<DeleteTaskProvider?>(
lazy: false,
create: (BuildContext context) {
deleteTaskProvider = DeleteTaskProvider(
repo: deleteTaskRepository, psValueHolder: valueHolder);
return deleteTaskProvider;
}),
],
谢谢你
1条答案
按热度按时间g6ll5ycj1#
要在Flutter中从provider迁移到GetX,您可以按照以下步骤操作:
将GetX添加到pubspec.yaml文件中:
确保已将GetX添加到pubspec.yaml文件中。您可以通过添加以下依赖项来完成此操作:
别忘了跑一趟去拿包裹。
在代码中将ChangeNotifierProvider替换为GetX:
将ChangeNotifierProvider替换为GetX等效项。在GetX中,您可以使用GetxController来管理您的状态。以下是如何迁移代码:
a.将ChangeNotifier类替换为GetXController类。你需要创建一个扩展GetxController的类来管理你的用户状态:
B.更新小部件树以使用GetX和GetBuilder小部件来侦听状态更改:
c.对于MultiProvider,您可以将其替换为每个控制器的多个GetBuilder小部件的组合。以下是MultiProvider的示例:
清理:
您可以删除旧的ChangeNotifierProvider和MultiProvider代码。