我不确定这是基于意见,还是实际上有一个最佳实践,但它是这样的:
我需要从一个操作中更新几个数据,我正处于这样的两难境地:我可以在一个reducer中监听来自多个文件的操作,或者一旦一个操作完成,我可以分派几个操作,每个操作将由不同的reducer监听。
就我对redux的了解而言,在一个reducer中监听来自多个文件的操作可能会导致一个臃肿的reducer,这不是使用redux的最佳方式。不过,我不确定分派几个操作是否更好。下面是一个示例:
---------First way:
actions/foo.js
export const doSomething = (data) => {
return(dispatch) => {
dispatch({type: DO_SOME_THING, payload: data})
}
}
reducers/foo.js
case FOO_ACTIONS.DO_SOME_THING:
return {...state, data: action.payload}
reducers/bar.js
case FOO_ACTIONS.DO_SOME_THING:
return {...state, fooData:action.payload}这就是我听到来自多个reducers的相同动作的地方。或者,第二种方式:
---------Second way:
actions/foo.js
export const doSomething = (data) => {
return(dispatch) => {
dispatch({type: DO_SOME_THING, payload: data})
dispatch({type: DO_SOME_THING_FOR_BAR, payload:data})
}
}
reducers/foo.js
case FOO_ACTIONS.DO_SOME_THING:
return {...state, data: action.payload}
reducers/bar.js
case FOO_ACTIONS.DO_SOME_THING_FOR_BAR:
return {...state, fooData: action.payload}两种方法中的一种被认为是最佳实践吗?
发布于 2020-12-29 18:01:08
redux风格指南指出你应该使用allow Many Reducers to Respond to the Same Action。
因此,发送一个操作并在多个reducers中对其进行反应。这让你写的动作更像是“描述事件”而不是"setter动作“(这也是推荐的,请阅读整个风格指南!)此外,根据环境的不同,React可能会在每次分派后重新呈现,因此分派两次可能会重新呈现某些组件两次-这也是您可能希望避免的。
https://stackoverflow.com/questions/65487932
复制相似问题