Flutter:从另一条路线刷新另一小部件状态

时间:2018-09-09 14:26:03

标签: dart flutter

在HompePage上,使用导航到“设置”页面

body {
  text-align: center;
}
.row {
 padding: 50px 0;
}
.post-item {
 outline: 1px solid red;
 padding: 50px 20px;
 border: 5px solid transparent;
}
.post-item:hover {
 outline: 0px solid transparent;
  padding: 50px 20px;
  border: 5px solid red;
 }

Navigator.push( context, new MaterialPageRoute( builder: (BuildContext context) => Settings())); 页面包含一个Settings()输入,允许用户指定他们希望在int上看到的帖子数量。当用户输入数字和form.save时,该值存储在HomePage中。但是,当用户返回到SharedPreferences时,帖子的初始数量仍然存在。我希望刷新HomePage状态,以便用户在“设置”页面上指定的帖子数量立即生效。

下面是我的代码片段;

这是HomePage页上的_submit形式,

Settings()

这是我的_submit() async { final form = _formKey.currentState; SharedPreferences prefs = await SharedPreferences.getInstance(); if (form.validate()) { prefs.setInt('defaultField', newva); form.save(); final mysb = SnackBar( duration: Duration(seconds: 1), content: new Text( 'Data Saved Successfully', style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold, ), ), backgroundColor: Colors.red, ); _scaffoldKey.currentState?.showSnackBar(mysb); myHomePageState.setState(() { newSULength = newva; }); print('Done for $newva'); } }

MyHomePage()

1 个答案:

答案 0 :(得分:0)

您可以使用callbacks来指示HomePage页面Settings更改了共享首选项中的某些值。请参阅this