【发布时间】:2018-05-05 17:41:53
【问题描述】:
我在我的项目中使用 redux-saga。 我以前用过 redux-thunk,所以我不能 setState 结束一些异步请求。喜欢
this.props.thunkAsync()
.then(){
this.setState({ '' });
}
由于 thunk 返回承诺,我可以使用 'then'。 但我不能用 saga 做到这一点,因为 saga 不会返回承诺。 所以我通过检查标志道具(如 REQUEST_SUCCESS、REQUEST_WAITING...)在 componentWillReceiveProps 中进行了更改。 我认为这不是解决这个问题的好方法。
所以.. 我的问题是,当异步请求以 redux-saga 结束时,我该如何做一些工作!
【问题讨论】:
-
你可以把 react 的 state 设置为 redux state,这样你就可以在 saga 本身中设置 state,并在这个组件中使用 redux state。
-
我想到了..谢谢!但是如果我想调用一些只能在本地工作的函数呢?
-
如果你使用 redux 来管理状态,那么你可以触发一个动作并在你的 reducer 中处理它来设置状态。
-
@godsenal 如果可以的话,您很可能应该将这些功能移至 saga。
-
@AnandS 谢谢!但是如果我想在异步请求结束后更改内联样式怎么办?我应该将此样式对象(或某些局部变量)移动到我的 redux 状态吗?
标签: reactjs redux redux-thunk redux-saga