Javascript API响应时调用componentDidMount

Javascript API响应时调用componentDidMount,javascript,reactjs,redux,Javascript,Reactjs,Redux,在我的项目中,我有一个对操作的调用,该操作进行webservice调用,然后将操作分派到ws的结果,这些操作编辑存储。 我的问题在于: ComponentDidUpdate () { If (this.props.messages.length) { Const items = this.props.messages.filter (this.isDisplayable); This.timer = setInterval (() => {

在我的项目中,我有一个对操作的调用,该操作进行webservice调用,然后将操作分派到ws的结果,这些操作编辑存储。 我的问题在于:

ComponentDidUpdate () {
    If (this.props.messages.length) {
      Const items = this.props.messages.filter (this.isDisplayable);
      This.timer = setInterval (() => {
        If (items.length> 0) {
          This.props.popItem (items);
        } Else {
          ClearInterval (this.timer);
        }
      }, This.props.interval);
    }
  }
事实上,它已经发布过好几次了,我也收到过警告

警告:FlattChildren(…):遇到两个具有相同 键,
1
。子密钥必须是唯一的;当两个孩子共用一把钥匙时, 只有第一个孩子会被使用

我使用了组件didmount,但它在api响应之前启动它

我的问题是: 是否有一种方法仅在响应我的操作时更新组件,或者传递警告

在我的项目中,我有一个对操作的调用,该操作进行webservice调用,然后将操作分派到ws的结果,这些操作编辑存储

方法
componentDidMount
componentdiddupdate
都不好。 观察Redux中的存储,并在找到正确的操作类型时相应地更新组件

因为您使用的是Redux体系结构,所以所有组件的状态都在一个地方—存储中



是的,我知道,但问题是componentDidUpdate被调用了几次,这给了我索引错误

这在中国是很正常的。检查此生命周期


您应该做的是管理Redux。 今天我将尝试为您提供一些图表。 一般来说,您所做的任何事情都将来自全球商店

您可能会忘记React.Component状态,以及在非Redux应用程序中使用的道具

您通常需要将包装器用作应用程序的上下文提供程序,其中上下文是React.Component的属性

该上下文将传递给所有子代和孙辈,因此这将是全局存储组织

然后需要从上下文中读取存储,并调用两个典型方法:dispatch和subscribe

在我的项目中,我有一个对操作的调用,该操作进行webservice调用,然后将操作分派到ws的结果,这些操作编辑存储

方法
componentDidMount
componentdiddupdate
都不好。 观察Redux中的存储,并在找到正确的操作类型时相应地更新组件

因为您使用的是Redux体系结构,所以所有组件的状态都在一个地方—存储中



是的,我知道,但问题是componentDidUpdate被调用了几次,这给了我索引错误

这在中国是很正常的。检查此生命周期


您应该做的是管理Redux。 今天我将尝试为您提供一些图表。 一般来说,您所做的任何事情都将来自全球商店

您可能会忘记React.Component状态,以及在非Redux应用程序中使用的道具

您通常需要将包装器用作应用程序的上下文提供程序,其中上下文是React.Component的属性

该上下文将传递给所有子代和孙辈,因此这将是全局存储组织

然后需要从上下文中读取存储,并调用两个典型方法:dispatch和subscribe

试试这个:

componentWillReceiveProps(nextProps) {
    if (this.props.messages === nextProps.messages) return;
试试这个:

componentWillReceiveProps(nextProps) {
    if (this.props.messages === nextProps.messages) return;

我遇到了一些问题,我通过强制更新解决了它

 forceUpdate () {
        If (this.props.messages.length) {
         ...
        }
      }

我遇到了一些问题,我通过强制更新解决了它

 forceUpdate () {
        If (this.props.messages.length) {
         ...
        }
      }

是的,我知道,但问题是ComponentDidUpdate被调用了几次,这给了我索引错误:(我尝试更新了一点,我会提供更多图像@HajjiTarik。是的,我知道,但问题是ComponentDidUpdate被调用了几次,这给了我索引错误:(我试着更新一下,我会提供更多图片@HajjiTarik。同样的问题:这是什么语言?在JavaScript中,关键字区分大小写,没有
If
Const
。同样的问题:这是什么语言?在JavaScript中,关键字区分大小写,没有
If
Const