Flutter : call setState() on a State object for a widget that no longer appears in the widget tree

最近在做项目的时候遇到一个问题,我的实现是进入一个页面,异步获取数据然后setState更新显示,但是出现了一个情况,每次第一次进去的时候没问题,可以正常显示,但是返回键退出页面再进到这个界面就会chux出现问题,Flutter的资料现在相对还较少,找了很久没发现问题,最后发现是我写单例的时候写错了一个地方

static UdpClient getInstance(NodeInterface nodeInterface) {
  if (udpClient == null) {
    udpClient = UdpClient();
    mNodeInterface = nodeInterface;
  }
  return udpClient;
}

这样写只在第一次进入的时候会进入if条件,再次进入,由于udpClient设置的是static变量,所以直接返回了udpClient,而nodeInterface还是上次的实例,所以在使用nodeInterface的时候会抛出 This error happens if you call setState() on a State object for a widget that no longer appears in the widget tree错误

 

    原文作者:Eiter
    原文地址: https://blog.csdn.net/qq_34379916/article/details/83855926
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞