相关疑难解决方法(0)

List.add 和手动添加项目到 Riverpod StateNotifier<List<String>> 之间的区别

我想学习如何使用Riverpod,因此为此我正在实现一个小应用程序,该应用程序显示项目列表和一个按钮,该按钮在点击时将虚拟项目添加到列表中。

问题背景

按下以下应用程序中的按钮将按预期工作(添加一个虚拟项目,并且更改会立即反映在 UI 中):

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';



void main() => runApp(const ProviderScope(child: MyApp()));

class MyApp extends StatelessWidget {
  const MyApp({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) => MaterialApp(home: HomePage());
}



final itemsProvider = StateNotifierProvider((ref) => ItemsList());

class ItemsList extends StateNotifier<List<String>> {
  ItemsList([List<String> items]) : super(items ?? []);

  void add(String item) => state = [...state, item];
}



class HomePage extends ConsumerWidget {
  const HomePage({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context, ScopedReader watch) { …
Run Code Online (Sandbox Code Playgroud)

state dart flutter riverpod

3
推荐指数
1
解决办法
1905
查看次数

标签 统计

dart ×1

flutter ×1

riverpod ×1

state ×1