gpt4 book ai didi

flutter - Provider/ChangeNotifier:在构建小部件后设置状态

转载 作者:行者123 更新时间:2023-12-03 04:25:05 27 4
gpt4 key购买 nike

我使用Provider / ChangenNotifier模式来处理状态,如in the official docs所述。

我有一个状态字段,要在构建小部件后设置。但是,如果我尝试在build方法中进行设置。我得到一个错误:

setState() or markNeedsBuild() called during build.



我在哪里可以这样称呼:
var state = Provider.of<StateModel>(context);
state.field = 'new Val';

最佳答案

您无法在构建过程中设置状态,如果要测试状态变化,请将此state.field = 'new Val';放在按钮事件中,例如FloatActionButton或构建完成后的事件(带有Future.delayed或添加post fram回调,请参见Is there any callback to tell me when "build" function is done in Flutter? )

警告如果您在state.field集中调用notifyListeners(),并使用provider监听小部件中的更改,则将导致无限的重建周期...这是您无法在构建期间设置状态的另一个原因...

关于flutter - Provider/ChangeNotifier:在构建小部件后设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60250572/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com