
我建议不要在initState()上使用异步。但是您可以通过将您的SharedPreferences包装在另一个函数中并将其声明为异步来以不同的方式进行 *** 作。
修改后的代码:
class _MyHomePageState extends State<MyHomePage> { TextEditingController _controller; String _name; Future<Null> getSharedPrefs() async { SharedPreferences prefs = await SharedPreferences.getInstance(); _name = prefs.getString("name"); setState(() { _controller = new TextEditingController(text: _name); }); } @override void initState() { super.initState(); _name = ""; getSharedPrefs(); } @override Widget build(BuildContext context) { return new TextField( decoration: new InputDecoration( hintText: "Name (optional)", ), onChanged: (String str) { setState(() { _name = str; storeName(str); }); }, controller: _controller, ); }}让我知道是否有帮助。谢谢。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)