今天在用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();
}
}