provider 相关问题

请勿使用 - 正在清理此标签。使用[android-contentprovider],[provider-model]或其他更合适的标签。

从最近使用的应用程序中删除该应用程序后,我试图返回到同一屏幕,但即使我已经登录,它也总是带我回到注册屏幕

如果登录并且使用共享首选项和两个单独容器点击的提供程序并基于该点击从后台删除应用程序,则无法让用户返回到上一个屏幕...

回答 1 投票 0

Flutter todolist 应用程序未添加多个任务

我有一个使用 Flutter + 提供程序构建的待办事项列表应用程序。它不是添加多个任务,而是在添加新任务时替换当前任务。另外,控制台有一些错误...

回答 1 投票 0

如何在 Flutter 中处置 ChangeNotifierProvider<T>.value( )

如何在 Flutter 中处理 ChangeNotifierProvider.value( ) 所以不会有内存泄漏 我将作为 ChangeNotifierProvider.value( ) 的值的对象作为单例 因为我需要

回答 3 投票 0

Flutter,提供程序未在三元运算符中解析为“TRUE”

如果为 true,Text() 应显示“正常”,如果为 false,则应显示“停电”。 容器( 孩子:文本( 提供商.of 如果为 true,Text() 应显示“正常”,如果为 false,则应显示“停电”。 Container( child: Text( Provider.of<RxStatus(context,listen:true).blackoutStatus[int.parse('1')] == '0' ? 'Normal':'BlackOut', style: TextStyle(color: Colors.red),), ) 但是,Provider.of(context,listen: true).blackoutStatus[int.parse('1')] == '0' 始终解析为 'False' 小部件的代码在这里(删除不相关的部分): class Vault extends StatefulWidget { const Vault({Key? key}) : super(key: key); @override _VaultState createState() => _VaultState(); } class _VaultState extends State<Vault> { late Timer _timer; @override initState() { // _timer = Timer.periodic(const Duration(seconds: 5), (timer) { Provider.of<RxStatus>(context,listen: false).getFeedback("vault"); print('vault'); }); print("vault initState Called"); } void dispose() { print('dispose vault'); _timer?.cancel(); super.dispose(); } Widget build(BuildContext context) { var screenSize = MediaQuery.of(context).size; return Stack( children:[ Row( mainAxisAlignment: MainAxisAlignment.center, children: [ //Right Wall Column( mainAxisAlignment: MainAxisAlignment.center, children: [ RotatedBox(quarterTurns:1 , child: ProDsxRx(rxLabel: 'Vault 7', rxId: '7')), RotatedBox(quarterTurns:1 , child: ProDsxRx(rxLabel: 'Vault 8', rxId: '8')), RotatedBox(quarterTurns:1 , child: ProDsxRx(rxLabel: 'Vault 9', rxId: '9')), Container( child: Text( Provider.of<RxStatus>(context,listen: true).blackoutStatus[int.parse('1')] , style: TextStyle(color: Colors.red),), ), Container( child: Text( Provider.of<RxStatus>(context,listen: true).blackoutStatus[int.parse('1')] == '0' ? 'Normal': 'BlackOut', style: TextStyle(color: Colors.red),), ) ], ) ], ), ProdsxFloatingMenuButton() ], ); } } 我在上面添加了另一个 Text() 小部件,可以看到 Provider.of(context,listen: true).blackoutStatus[int.parse('1')] 确实在 '0' 或 '2' 之间变化 但是,当 Text() 显示 '0' 时,它仍然解析为 'Blackout'(False) 以下是 RxStatus 提供程序的片段: class RxStatus extends ChangeNotifier { List rxIDs = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13, 14, 15, 16, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 ]; final List rxIDs_bank = [ 10, 11, 12,13, 14, 15,19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 ]; final List rxIDs_vault = [ 1, 2, 3, 4, 5, 6, 7, 8, 9,16, ]; Map blackoutStatus = { 1:'0',2:'0',3:'0',4:'0',5:'0', 6:'0',7:'0',8:'0',9:'0',10:'0', 11:'0',12:'0',13:'0',14:'0', 15:'0', 16:'0', 23:'0', 24:'0', 25:'0', 26:'0', 27:'0', 28:'0', 29:'0', 30:'0', 31:'0', 32:'0', 33:'0', 34:'0', 35:'0', 36:'0', 37:'0', 38:'0', 39:'0', 40:'0', 41:'0', 42:'0', 43:'0', 44:'0', 45:'0', 46:'0', }; getFeedback(_bank_vault) async { if(_bank_vault == 'bank'){ rxIDs = [...rxIDs_bank]; }else if(_bank_vault =='vault'){ rxIDs = [...rxIDs_vault]; } ////////////// rxIDs.asMap().forEach((index, item) async { try { print('blackout status${item}'); // Check blackout var response = await http.get(Uri.parse('http://172.31.3.${item}/cgi-bin/query.cgi?cmd=cat /sys/devices/platform/videoip/pause')); blackoutStatus[item] = response.body; print(blackoutStatus); notifyListeners(); }catch (error) { blackoutStatus[item] = 'Error'; // notifyListeners(); } }); // print(myStatus); } } 发现问题了。 将问题隔离到 Provider.of(context,listen: true).blackoutStatus[int.parse('1')] == '0' 事实证明,在 blackoutStatus 的值中,来自 http get 请求的返回不仅仅是“0”或“2” 测试了response.body.lenght,长度显示为2,所以返回的数据必须有一些空间 因此编辑了代码以使用 contains('0') Provider.of(context,listen: true).blackoutStatus[int.parse('1')].contains('0')

回答 1 投票 0

当用户单击按钮时如何更改所需的布局,然后添加项目按钮必须出现在 Flutter 中

我是 Flutter 状态管理的新手。我想要根据该视频的相同功能。 https://streamable.com/6zm375?src=player-page-share。当用户单击按钮时,然后添加 ttems 按钮...

回答 1 投票 0

当用户单击按钮时,如何更改所需的布局而不是突然在 Flutter 中出现“添加项目”按钮

大家好,我是 Flutter 状态管理的新手。我想要根据此视频获得相同的功能。 https://streamable.com/6zm375?src=player-page-share。当用户单击按钮时添加...

回答 1 投票 0

如何将 TexteditingController 与 Statenotifierprovider 一起使用

我想使用具有双精度数据类型(即价格名称)的文本编辑控制器,因为在我的 statenotifier 提供程序中,我已指定价格应该是双精度,我应该如何处理它.. belo...

回答 1 投票 0

在 Flutter 中调用 notificationListner() 后消费者无法更新

我有一个带有 ChangeNotifer 的课程。当我调用此类中的方法时,我希望更新列表视图。 这是课程: 带有 ChangeNotifier 的 WorkoutProvider 类 { 列表 我有一堂课是 with ChangeNotifer。当我调用此类中的方法时,我希望更新列表视图。 这是课程: class WorkoutProvider with ChangeNotifier { List<Exercise> _workoutList = <Exercise>[]; ///constructor WorkoutProvider(); ///get&set List<Exercise> get workout => _workoutList; set workout(List<Exercise> value) { _workoutList = value; } ///removing an exercise to the list void removeExercise(Exercise exercise) { _workoutList.remove(exercise); print("deleting"); notifyListeners(); } } 这是列表视图: myPro = Provider.of<WorkoutProvider>(context); body:Consumer<WorkoutProvider>( builder: (BuildContext context, WorkoutProvider value, Widget? child) { print("building cons"); return ListView.builder( padding: EdgeInsets.symmetric(horizontal: 30, vertical: 10), itemCount: value.workout.length, itemBuilder: (context, index) => Container( margin: EdgeInsets.symmetric(vertical: 3), child: exerciseCard(value.workout.elementAt(index))), ); }, ), /// used to delete the exercise from the list of exercises Widget buildDeleteExerciseBt(Exercise delExercise) { return IconButton( onPressed: (){ myPro.removeExercise(delExercise); }, icon: Icon( Icons.delete, color: Colors.red, )); } 检查后,它正在从课堂上删除练习,但 UI 没有更新。 这里是提供商的注册: Future<void> main() async { GlobalContextService.navigatorKey = GlobalKey<NavigatorState>(); WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); runApp( MultiProvider( providers: [ Provider<WorkoutProvider>(create: (_) => WorkoutProvider()), ], child: MaterialApp( debugShowCheckedModeBanner: false, routes: { '/' : (context) => AlreadyLoggedChecker(), '/login-screen': (context) => LoginScreen(), '/workout-review' : (context) => WorkoutReviewScreen(), '/create-training' : (context) => TrainingCreateScreen(), }, initialRoute: '/', ), ), ); } 我尝试添加一些 print(),这样当调用具有 notificationlistners() 的方法时,消费者就不会构建。 显然,在 ChangeNotifierProvider 中注册提供商时,我应该使用 Provider 而不是 main。

回答 1 投票 0


不要跨异步间隙使用“BuildContext”

`不要跨异步间隙使用“BuildContext”。尝试重写代码以不引用“BuildContext” 所提供代码中的问题围绕处理异步操作和美国...

回答 1 投票 0

copyWith 在提供程序中创建函数时出错

我正在通过 YouTube 视频学习使用 StateNotifier 和 StateNotifierProvider。 我创建了一个模型和一个 StateNotifier 类 用户数据模型: 类用户{ 最终字符串?代理 ID; 最后的S...

回答 1 投票 0

如何在next.js应用程序中添加主题提供程序?

我想将themeprovider添加到我的应用程序中,这样我就可以轻松地在深色和浅色模式之间切换 这就是我的layout.tsx的样子: 导入“./globals.css”; 导入“@/styles/nav.css”; 我...

回答 1 投票 0

提供程序未更新 UI 中变量的值

我在我的一个班级中使用了全局变量。该全局变量的值在开始时为 null,但一段时间后它会从后台运行的函数中获取值。我想要那个...

回答 1 投票 0

哪种状态管理方法更适合实时更新数据?

我们正在为我们的大学开发停车管理应用程序,我们正在接收车辆信息。如果输入的车辆没有注册,保安可以选择...

回答 1 投票 0

Riverpod FutureProvider 无法提供 AsyncValue 依赖注入

我有一个由LectureRepositoryImpl实现的抽象类LectureRepository。 LectureRepositoryImpl 初始化 SharedPreferences 共享Preferences 为 LectureLocalDataSourceImpl({@需要这个。

回答 2 投票 0

无法追踪ContentProvider中NullPointerException的原因

我正在自学内容提供商的基础知识。 我有一个名为 BooksProvder 的 ContentProvider 合同类。它的基础数据位于名为“fiction&q...

回答 1 投票 0

异常:构建观察者时发生错误,但自从disableErrorBoundaries==true后就被捕获了

我在 flutter 应用程序中 StatefulWidget 类的构建方法中返回以下小部件: 返回堆栈( 孩子们: [ 观察者( 构建器:(上下文){ 返回 SingleChildScrollView( ...

回答 1 投票 0

如何将使用提供程序的项目转换为使用 flutter_riverpod 提供程序?

以前我一直在使用提供程序,因为它很简单,但现在我想检查我们的 flutter_riverpod 我无法理解我拥有的一些代码,我想知道你是否可以帮助我

回答 1 投票 0

Flutter AnimatedList 与 Provider 模式

我有实现 ChangeNotifier 的模型 带有 ChangeNotifier 的 DataModel 类{ 列表数据=列表(); 无效addData(数据数据){ 数据.add(数据); 通知列表...

回答 3 投票 0

有没有办法在声明后更新 River pod 中的状态提供者的值

最终 itemCountProvider = StateProvider((ref) { 返回0; }); 我需要跟踪项目中选择的项目数量,最初项目计数为零,但后来我需要......

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.