Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 关于未安装的Act组件更新的警告_Reactjs - Fatal编程技术网

Reactjs 关于未安装的Act组件更新的警告

Reactjs 关于未安装的Act组件更新的警告,reactjs,Reactjs,在我开发自己的react博客的那天,我遇到了一个问题,需要你的帮助,而且我的英语很差,请原谅我的打字错误 我用React 16.x编写代码,React发出警告: 警告:只能更新已安装或正在安装的组件。这通常意味着您在未安装的组件上调用setState、replaceState或forceUpdate。这是禁止的。 请检查Post组件的代码。 Post组件在ComponentDidMount生命周期方法中使用异步请求调用getCategories()函数,然后在呈现Post组件后单击指向另一个组

在我开发自己的react博客的那天,我遇到了一个问题,需要你的帮助,而且我的英语很差,请原谅我的打字错误

我用React 16.x编写代码,React发出警告:

警告:只能更新已安装或正在安装的组件。这通常意味着您在未安装的组件上调用setState、replaceState或forceUpdate。这是禁止的。 请检查Post组件的代码。

Post组件在ComponentDidMount生命周期方法中使用异步请求调用getCategories()函数,然后在呈现Post组件后单击指向另一个组件的链接,它将发出警告

我已尝试添加一个标记:

componentDidMount() {
  this._isMounted = true;

  this.getCategories()
}

componentWillUnmount() {
  this._isMounted = false;
}
然后在我的getCategories中:

fetch({
    ...API.getCategories,
    data: {
      include: post.categories.join(',')
    }
  }).then(res => {
    if (res && res.data && this._isMounted) {
      this.setState(prevState => ({
        meta: Object.assign({}, prevState.meta, {
          categories: res.data
        })
      }));
    }
  });

仍然存在警告。

在组件装载后更新状态将触发第二个
render()
调用,并可能导致属性/布局抖动。您收到此警告是因为您正在
componentDidMount()


有关详细信息,请阅读。

在组件装载后更新状态将触发第二个
render()
调用,并可能导致属性/布局抖动。您收到此警告是因为您正在
componentDidMount()


请阅读了解更多详细信息。

谢谢,我已经阅读了它,但实际上我需要在这个组件中请求一些数据,它只是在这个组件中使用的。是的,但我不想按照redux的最佳实践将所有状态都放入redux中。试试这个
componentDidMount(){axios.get(api.url+“dish”)。然后((dish)=>{this.setState({dataSource:dish})console.log(dish);}).catch((err)=>{console.log(err);});}
[谢谢,但它不起作用,问题是在请求解决之前,用户链接到其他组件。我尝试向DOM添加一个ref-wrapEl,并在请求成功回调中,添加一个
if
条件,只有当this.wrapEl存在时,setState才会执行,这可以。谢谢,我读过了,但实际上我需要这样请求我在这个组件中添加了数据,它只是在这个组件中使用。是的,但我不想按照redux的最佳实践将所有状态都放入redux中。试试这个
componentDidMount(){axios.get(api.url+“dish”)。然后((dish)=>{this.setState({dataSource:dish})console.log(dish);})。catch((err)=>{console.log(err);}}
[谢谢,但它不起作用,问题是在请求解决之前,用户链接到其他组件。我尝试向DOM添加一个ref-wrapEl,并在请求成功回调中,添加一个
if
条件,仅当this.wrapEl存在时,设置状态才会执行,这可以确定。