首页 > 建站教程 > APP开发,混合APP >  flutter Provider.of without passing `listen: false`.正文

flutter Provider.of without passing `listen: false`.

今天在用Provider时,调用继承自ChangeNotifier的Counter类里面的方法时,写了下面的代码:
floatingActionButton: FloatingActionButton(
  onPressed: () => {Provider.of<Counter>(context).increment()},
  child: Icon(Icons.add),
),
点击这个floatingActionButton时,老是报下面的错误:
Provider.of without passing `listen: false`.
找了老半天,总算找到了,原因是这里的of方法参数里面少了“listen: false”,补上就行了:
Provider.of<Counter>(context, listen: false).increment()
此外,调用Provider里面的值,不需要:
Provider.of<Counter>(context).count
附上Counter类:
class Counter with ChangeNotifier {
  int _count = 0;
  int get count => _count;

  void increment() {
    _count++;
    notifyListeners();
  }
}