Flutter-Navigator.pop()-使用setState()重建原始屏幕



如何使用我的"主页屏幕";在我在SecondScreen中操作了一些显示的数据(在HomeScreen中(后使用setState?我正在使用Navigator.pop((,但它没有显示更改。

第二屏幕:

onPressed: () {
setState(
() {
holidays[widget.index].start = test;
},
);
Navigator.pop(
context,
);
},

在我的主屏幕上,我有一个";假日";。在假日课上,我有一个按钮。。。。

GestureDetector(
onTap: () async {
await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => EditScreen(
start: start, end: end, index: index),
),
);
},

是否尝试在Navigator.push()之后调用setState()

好的,所以我必须在我的主文件中创建一个回调函数,基本上只是setState(),在创建Holiday的实例时传递该函数,然后在await Navigator.push()之后运行回调函数

回调功能:

void rebuild() {
print("test");
setState(() {});
}

我的假日类中的Navigator.push((

onTap: () async {
await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => EditScreen(
start: start,
end: end,
index: index,
),
),
);
rebuild!();
},

最新更新