怎么检查是数据完成更新然后做其他事情(REACTJS + REDUX)

时间:2017-12-21 05:19:56

标签: reactjs redux react-redux redux-saga side-effects

现在我使用' componentWillRecieveProps'进行检查。检查' nextProps' Redux状态是完成与否。

就像这个例子一样,

if (!nextProps.a.update && !nextProps.a.error &&
  nextProps.a.update !== this.props.a.update) {
  const oldData = [...this.props.a.data];
  const newData = [...nextProps.a.data];
        .
        .
        .
  });
}
}

有没有人有另一个好主意来检查它?

感谢。

2 个答案:

答案 0 :(得分:0)

如果您正在使用Redux-saga或thunk等任何中间件,您可以检查是否已从中间件本身进行更新,并且一旦更新,您就可以从中间件本身发送操作并获得通知。 不确定你的情况多少合适。

答案 1 :(得分:0)

这取决于。 1.如果你想要实现的逻辑,仅针对相同的组件,并且一次只从一个调度的动作,那么使用标志肯定是好的,在'将更新'时设置为true,在'更新'时设置为false (必要时适用于mount)。 2.如果逻辑是基于少量动作,那么可能使用promise创建一个膨胀机制会更好。再次,取决于你的逻辑。也许为每种类型的更新使用标志就足够了。 3.如果逻辑是系统范围的,我会使用全局变量,甚至可能在'window'上设置。例如,我想实现一个名为'isLoading'的变量,它将定义是否有任何挂起的ajax调用。

请告诉我这是你一直在寻找的。