Flutter-单击子按钮时更新parant小部件类UI

问题描述 投票:0回答:1

enter image description here

我有这种情况

Widget build(BuildContext context) {
return Scaffold(
  appBar: AppBar(
    title: Text("Hello"),
  ),
  body: Container(
    child: ChildWidget(
      listControl: this.sentToScreenBuildJson,
      notifyParent: refresh,
    ),
  ),
);
}

这是我的父构建方法,在其中我向ChildWidget添加了另一个statfulscreen,并且传递的是json和刷新功能

每个json子项都能绘制UI然后单击按钮,我就可以获取回调以刷新方法。

refresh() {
print("I get refreshed from child");
setState(() {
  print("I get refreshed from child in setState");
  this.sentToScreenBuildJson = this.newJson;
});
}

在按钮上单击均会执行打印,但UI不会按照newJson进行更新。就像我期望的那样,作为setState运行,父级必须通过更新的json调用build。这不起作用。

感谢您的帮助。

flutter flutter-layout
1个回答
0
投票

在单击子按钮时更新parant窗口小部件类UI

这是Flutter中的一个常见用例,Flutter已在InheritedWidget类中内置了此类目的。您可以直接将其用于您的目的,也可以使用一些现成的包装解决方案,该解决方案在InheritedWidget之类的幕后使用Provider

© www.soinside.com 2019 - 2024. All rights reserved.