【问题标题】:Can't call setState on a component that is not yet mounted - react native无法在尚未安装的组件上调用 setState - 反应原生
【发布时间】:2021-12-06 11:11:34
【问题描述】:

在React Native中不断收到如下错误信息,真的不明白是从哪里来的

警告:无法在尚未安装的组件上调用 setState。 这是一个无操作,但它可能表明您的应用程序中存在错误。 相反,直接分配给this.state 或定义一个state = {}; ConnectionMqtt 组件中具有所需状态的类属性。

constructor(){
    super();
    this.onMessageArrived = this.onMessageArrived.bind(this)
}

componentDidMount() {
    const conn = new ConnectionMqtt();
    conn.onMessageArrived = this.onMessageArrived;
  }

【问题讨论】:

    标签: javascript reactjs react-native


    【解决方案1】:

    您不应该在构造函数中使用 setState,因为组件尚未安装。在这种情况下,clickMe() 方法调用 setState()。 相反,直接初始化状态。喜欢,

    constructor(props) {
        super(props);
        // Don't call this.setState() here!
        this.state = { counter: 0 };
        this.handleClick = this.handleClick.bind(this);
    }
    

    例如来自https://reactjs.org/docs/react-component.html#constructor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 2019-01-07
      相关资源
      最近更新 更多