【问题标题】:How can I find out when a model changes with Provider?我如何知道模型何时随 Provider 发生变化?
【发布时间】:2020-04-12 19:09:11
【问题描述】:

考虑到下级。是否可以在appStateModel.bar 更改时进行监听?我有一个场景,我想在每次某个值发生变化时执行动画,但我似乎无法弄清楚如何实现。

class Foo extends StatelessWidget {
  const Foo();

  @override
  Widget build(BuildContext context) {
    var appStateModel = Provider.of<AppStateModel>(context);
    return Container(
      child: Text('${appStateModel.bar}'),
    );
  }
}

【问题讨论】:

  • 更改栏属性时添加notifyListeners()方法。
  • 已经完成了。值更新得很好。我只是想知道更新是什么时候执行的,以便我可以采取行动。
  • 当您调用 notifyListeners() 时,您的文本小部件将自动更新。

标签: flutter flutter-provider


【解决方案1】:

在您的更改通知程序中,您应该按照说明包含notifyListeners()。 有了它,它应该可以工作。

另一方面,您可以使用 build 方法对更改事件采取行动,因为每次调用 notifyListeners() 时,小部件都会重新构建(至少在我的理解方面)。

如果这不起作用,则有 Consumer Widget,它使用通知器并仅在调用 notifyListeners() 时重建。 这个小部件还提供了一个子参数,您可以在使用它时节省性能,因为它不需要在通知程序更改时重新构建。

希望这能解决您的问题。

【讨论】:

    猜你喜欢
    • 2020-08-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多