是否有可能保持redux调度函数在类执行异步动作?



我是Redux的初学者,我想将其用于异步逻辑。Redux风格指南建议使用redux-thunk,但如果我以以下方式使用Redux,我似乎不需要它:

class Actions {
constructor(dispatch) {
this.dispatch = dispatch;
}
someSyncAction1(data) {
this.dispatch({
type: SOME_SYNC_ACTION1,
payload: data,
})
}
someSyncAction2(data) {
this.dispatch({
type: SOME_SYNC_ACTION2,
payload: data,
})
}

async someAsyncAction(data1, data2) {
this.someSyncAction1(data1);
await somethingAsync();
this.someSyncAction2(data2);
}
}
// then in my react component:
function MyComponent() {
const dispatch = useDispatch();
const actions = new Actions(dispatch);

//...
return <div onClick={() => actions.someAsyncAction(1, 2)}></div>;
}

这似乎是一个简单的方法,但我担心它是否会导致错误。请帮我弄清楚是哪里出了问题。

这与Hooks文档中引用的useActions钩子没有太大的不同-至少对于同步内容而言。

在异步的东西,你失去的功能虽然:坦克可以在任何给定的时间通过调用getState访问当前状态。

而且,这可能更重要:thks不仅是推荐的,而且是几乎每个redux开发人员都知道的模式。所以他们看了你的代码就可以马上开始工作了。另一方面,你的模式还没有建立起来,所以如果别人接管了你的代码,这将导致冲突——没有任何真正的好处。

相关内容

  • 没有找到相关文章

最新更新