【发布时间】:2020-10-17 12:10:45
【问题描述】:
我的reducer以异步方式返回状态,因为它会与另一个组件交互,如何在.then中reducer更新状态后使组件重新渲染?
switch (action.type) {
case RELEASE_PAYMENT:
(new PaypalContract())
.releasePayment(action.id)
.then(() => (new PaypalContract()).getState(action.id))
.then(function(e) {
console.log("status in orderReducer:",status[e])
return{
...state,
orderStatus: status[e]
}
})
return state
【问题讨论】:
-
为了与异步函数交互,例如获取数据或底层智能合约,我认为将函数放在 reducer 或 action 中而不是 react 组件中是很巧妙的。由于一个成功的异步函数首先会反馈一个“待处理”,然后在它获得所需的数据后,它会返回“已完成”。所以'redux-promise-middleware'可能是我在这种情况下真正需要的。我需要更改 action 和 reducer 中的某些内容以使其工作:github.com/pburtchaell/redux-promise-middleware/blob/main/docs/…
标签: reactjs react-redux reducers