颤振:如何更新文本小部件值

Posted

技术标签:

【中文标题】颤振:如何更新文本小部件值【英文标题】:flutter: how to update the text widget value 【发布时间】:2021-10-02 02:30:16 【问题描述】:

我想在点击按钮时更新文本小部件的值。

这是我的代码


Widget text()
   
    if(workinghours=="0" || gettimeinworkinghours=="0")   
        
        if(gettimeinworkinghours=="0")
          totalWorkingHours();
          setState(()    //here i am using setstate
            return Text(gettimeoutworkinghours,style: TextStyle(
            color: fontcolor,
            fontSize: remainingtextfontsize,
            fontFamily: fontFamily));
          );
         
       
        
        else if(workinghours=="0")
        totalWorkingHours();
        return Text(totalTime,style: TextStyle(
            color: fontcolor,
            fontSize: remainingtextfontsize,
            fontFamily: fontFamily)); 
    
    else
      return Text(workinghours,style: TextStyle(
            color: fontcolor,
            fontSize: remainingtextfontsize,
            fontFamily: fontFamily)); 

    
   
       return Text(gettimeoutworkinghours,style: TextStyle(
            color: fontcolor,
            fontSize: remainingtextfontsize,
            fontFamily: fontFamily));

  

我想将文本小部件的值更新为gettimeoutworkinghours 值,当我按下 ctrl+s(保存)时它正在工作,它会更新值但我想自动更新它,我使用 setState 对此但那是不工作,我在 initState() 中调用 text() 但它不工作,请帮助如何做到这一点。

【问题讨论】:

当你创建一个新的 Flutter 项目时,它会创建一个完全符合你要求的代码。你能在那里检查它是如何完成的吗? 是的,我现在检查了一下,它使用 setstate(),我在使用 setstate 的地方更新了我的代码,但这也不起作用!请检查我是否以正确的方式使用 setstate 谢谢!它有效,我在错误的地方调用了 setstate( text() ),纠正它并且它有效! 【参考方案1】:

所以你在 initState() 中调用 text()。 initState() 仅在第一次加载小部件时调用一次。 setState 不会再次调用 initState()

【讨论】:

我从 initState() 中删除,但它不起作用 你想要 text() 小部件代码(它是我发布的全部内容),或者我在哪里计算 gettimeoutworkinghours 值? 谢谢!它有效,我在错误的地方调用了 setstate( text() ),纠正它并且它有效!【参考方案2】:
    确保您处于有状态小部件中。 按钮 onPressed 回调使用 setState(()=>text()) 它应该更新文本小部件。

【讨论】:

我在按钮按下 setstate 时调用 text() 它不起作用!并使用有状态小部件 谢谢!它有效,我在错误的地方调用 setstate( text() ),纠正它,它有效!

以上是关于颤振:如何更新文本小部件值的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“必须向文本小部件提供非空字符串”。颤振错误?

颤振文本小部件不出现

颤振小部件不显示

颤振 |我想在左侧添加小部件如何?

如何在颤振中创建以下小部件

颤振计时器仅更新秒小部件