gpt4 book ai didi

reactjs - 使用 Redux hooks 时你需要 action creators 吗?

转载 作者:行者123 更新时间:2023-12-04 08:10:00 25 4
gpt4 key购买 nike

这是一个奇怪的问题,但我一直没能找到明确的答案。在我的项目中,我将 Redux 与新的 Redux Hook 、useSelector 和 useDispatch 结合使用。设置是标准的:

reducer :

const reducer = (state = defaultState, action) => {
switch (action.type) {
type SOME_ACTION:
return {
...state,
someVariable: action.payload
}
default:
return state
}

同步 Action :

export function someAction(payload) {
return {
type: SOME_ACTION
payload: payload
}

在组件中我使用dispatch({type: SOME_ACTION, payload: payload}).

最近我注意到,即使 action creator 不存在,调度也能正常工作:例如,如果 SOME_ACTION 类型列在 reducer switch 运算符中,但没有函数 someAction(payload)。问题是:在这种情况下编写 action creators 是多余的吗?使用 Redux Hook 时的最佳实践是什么?

最佳答案

你当然可以使用 Action 对象字面量

dispatch({ type: 'MY_SUPER_AWESOME_ACTION });

但是创建 action creator 可以让您更有效地重用代码。

const mySuperAwesomeAction = () => ({ type: 'MY_SUPER_AWESOME_ACTION });

现在,在您的应用中任何需要发送此操作的地方,您都可以导入该操作并使用

dispatch(mySuperAwesomeAction());

随着应用的增长和 Action 在多个组件中的使用,如果您使用对象字面量,您将需要查找/替换 Action 字面量的所有实例,希望您没有打错任何一个。使用单个 Action 创建器定义,您只需在单个位置更新它。

关于reactjs - 使用 Redux hooks 时你需要 action creators 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66023340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com