【问题标题】:How can i acces this boolean in this timer?我如何在这个时候访问这个布尔值?
【发布时间】:2020-03-10 09:47:09
【问题描述】:
 GestureDetector(
            onTap: () {
              Timer(Duration(seconds: 10), () {
                bool check =true;
              });
              if (check == true) {
              int details = -10;

我想在 if 语句中访问计时器中的布尔检查。

【问题讨论】:

    标签: flutter dart mobile timer boolean


    【解决方案1】:

    您遇到了范围问题,因为您在 Timer 回调内的函数中实例化了 check 变量,并且在该范围之外将无法访问它。

    您可以在类中声明该变量并在需要时访问它,如下所示:

    在课堂上

    bool check;
    int details;
    

    GestureDetector(
      onTap: () {
        Timer(Duration(seconds: 10), () {
          setState((){
            check = true;
            details = -10;
          });
        });
      }
    )
    

    或者,如果您不需要该范围之外的检查变量,则可以将其完全删除:

    在课堂上:

    int details;
    

    在小部件中:

    GestureDetector(
      onTap: () {
        Timer(Duration(seconds: 10), () {
          setState((){
            details = -10;
          });
        });
      }
    )
    

    我在两个示例中都添加了setStates,因为您似乎将使用这些值更新您的视图,如果没有setState,它将无法工作。

    【讨论】:

    • 很高兴我能帮上忙。如果回答对您有帮助,请将其标记为正确,以帮助其他用户。还可以考虑为相关性投票。
    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2019-11-11
    相关资源
    最近更新 更多