弹出时刷新状态

时间:2020-06-29 08:26:52

标签: flutter navigation page-refresh

我正在使用“未来”构建器为我的用户设置个人资料,他们可以在第二页中编辑信息。但是当他们提交Navigator.pop(context)时会被调用,但是在第一个屏幕上没有任何变化。如果我离开页面并返回它,它只会刷新状态!有没有办法强制屏幕刷新?

 User user = User(
    id: widget.user.id,
    name: _name,
    profileImageUrl: _profileImageUrl,
    bio: _bio,
    email: _email,
    webAddress: _webAddress,
    tel: _tel,
    location: _location,

  );
  DatabaseService.updateUser(user);


  Navigator.pop(context);
}

这就是我的提交按钮

1 个答案:

答案 0 :(得分:0)

正如@pskink在评论const [columns, setColums] = useState([ {title: "Number", field: 'itemNumber', editable: 'never'}, {title: "Description", field: 'itemDescription', editable: 'never'}, {title: "Amount", field: 'amount', editable:'always'}, ]); return ( <MaterialTable title="" columns={columns} data={this.state.Items} editable={{ onRowUpdate: (newData, oldData) => new Promise((resolve) => { setTimeout(() => { resolve(); this.onRowEditSave(newData); }, 600); }), /> ) 中指出的,将返回Future。您可以听其完成,然后调用Navigator.pop()来重建窗口小部件

setState

现在,仅当您在查看和编辑页面上的数据来自同一来源时,此方法才有效。如果您只是传递原始值来编辑页面并在那里进行更改,则无论您先前的页面可能不会更新。在这种情况下,您可以从编辑页面返回更新的数据,或者使用状态管理方法来监听更改