Redux 是否等到所有先前调度的操作都修改了存储


handleDeleteClick = propertyName => () => {
  this.props.clearFilterOption(propertyName, this.props.filtersPropertyName);
  this.props.onFilterClear();
};

handleDeleteClick函数是一个按钮处理程序。我的第一个 redux 操作clearFilterOption修改存储。第二个操作onFilterClear是异步操作,它从 redux-thunk 的getState映射过滤器参数并调用 api。我的问题是 - redux thunk 是否等待先前调度的修改商店的操作?换句话说 - 我是否确定第二个操作将使用最新的商店版本触发?

目前,它按预期工作。第二个操作使用清除的筛选器选项触发。但我不知道这是因为我正在使用redux-thunk,还是因为clearFilterOption现在是一个低成本函数。

Thunk 中间件不会这样"等待",它所做的只是查看已调度的操作,如果它是一个函数,它会调用它。

商店的修改顺序取决于您的操作以及它们是否异步。

在您的情况下,如果第一个操作clearFilterOption是同步的,则它将始终在调度第二个操作之前更新存储。如果它不是同步的,那么这取决于你的Thunks中发生的任何事情的时间。

如果你总是需要一件事先于另一件事发生,你应该链接你的行动(作为Thunks(,而不是在你的handleDeleteClick中按顺序调度它们。

最新更新