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
中按顺序调度它们。