我正在学习提供程序包,其中我创建了一个应用程序,无论我在TextField中键入什么,都将更改应用程序栏中的标题和TextField下面的文本小部件。但它不工作,所以我开始尝试不同的代码,经过一些尝试,当我在TextField onchanged中将listen更改为false时,它开始工作。我还是不明白为什么它在设定听后就开始工作了:错误。第一个
b1payxdu1#
你好,哈什迪普·辛格简单地说,如果设置listen: false,这意味着当notifyListeners()调用时,它将不会侦听更改。例如,如果文本更新changeString(newValue)和listen: false,则它将不更新值。
listen: false
changeString(newValue)
final value = Provider.of<Data>(context, listen: false); value.data; <-- data will not update when notifyListeners() call
当您将listen设置为true时,它将侦听更改并更新该值。
final value = Provider.of<Data>(context, listen: true); value.data; <-- data will update when notifyListeners() call
1条答案
按热度按时间b1payxdu1#
你好,哈什迪普·辛格
简单地说,如果设置
listen: false
,这意味着当notifyListeners()调用时,它将不会侦听更改。例如,如果文本更新
changeString(newValue)
和listen: false
,则它将不更新值。当您将listen设置为true时,它将侦听更改并更新该值。