【问题标题】:Data isn't showen after fetchig it from sharedpreferences从 sharedpreferences 中获取数据后未显示数据
【发布时间】:2022-01-15 19:34:03
【问题描述】:

我将数据保存到 sharedpreferences,但是当我获取数据时,它没有显示在屏幕上。我可以在控制台日志中打印正确的数据,但无法在屏幕上显示。

这是变量:

int oldDate = 0;

这是我从 sharedprefs 获取数据的代码:

  Future<int> getDataIntTest() async {
    final prefs = await SharedPreferences.getInstance();
    oldDate = prefs.getInt("oldDate");
    setState(() {});
  }

这是我的 Scaffold 中我想将其打印到屏幕上的地方:

 @override
  Widget build(BuildContext context) {
    oldDate = formattedDate;
    return Scaffold(
      body: Center(
        child: Column(
          children: <Widget>[
            Text(
              oldDate.toString(),
            ),
          ],
        ),
      ),
    );
  }

在我看来,setState 应该更新屏幕并且应该显示新数据。令人困惑的是,我可以在填充后在控制台日志中打印正确的数据,但无法在屏幕上显示。

【问题讨论】:

  • 请分享更多代码,帮助开发者更好地理解
  • 我添加了更多代码
  • 你从哪里打电话给你的getDataIntTest
  • 来自 Text(oldDate.toString) 下的 RaisedButton。
  • formattedDate 变量是什么

标签: flutter dart sharedpreferences


【解决方案1】:

我试过了,只需删除formattedDate

class _MyHomePageState extends State<MyHomePage> {
  
   int oldDate = 0;
   Future<int> getDataIntTest() async {
     oldDate = 5;
     setState(() {});
   }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          children: <Widget>[
            InkWell(
              onTap: (){
                getDataIntTest();
              },
              child: Text(
                oldDate.toString(),
              ),
            ),
          ],
        ),
      ),
    );
  }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-03
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 2020-12-11
    • 1970-01-01
    相关资源
    最近更新 更多