gpt4 book ai didi

Redux - 我需要单独保留 Action 类型吗?

转载 作者:行者123 更新时间:2023-12-01 10:31:54 24 4
gpt4 key购买 nike

我目前在单独的文件中定义我的操作类型:

export const SET_SOME_ID = 'SET_SOME_ID';
export const SET_SOME_NAME = 'SET_SOME_NAME';
...

然后在我的 action creators 文件中我这样做:

import * as ATYPES from './actionTypes.js';
export function setSomeId(id) {
return { type: ATYPES.SET_SOME_ID}
}
export function setSomeName(name) {
return { type: ATYPES.SET_SOME_NAME}
}
...

我觉得我应该放弃将 Action 类型放在一个单独的文件中,而只在 actionCreators.js 文件中这样做:

export function setSomeId(id) {
return { type: 'SET_SOME_ID'}
}

这是必要的吗?也就是说,随着应用程序的增长,这样做是否正确会变得很明显吗?

最佳答案

可以只返回一个字符串,而无需在单独的文件中定义类型。然而,这通常是一种糟糕的编码做法 - 任意字符串,尤其是跨多个文件使用的字符串,应定义为常量变量并在任何使用的地方导入。

在您的情况下,您必须在 Action 创建者和一个或多个缩减器中使用 Action 类型字符串(可以设置多个缩减器以响应单个 Action 类型)。将操作类型定义为常量并在任何使用的地方导入它们可以降低在使用它们的来源之一中意外拼写错误的风险,这可能会导致大量时间浪费在调试简单的错误/拼写错误上。

此外,将所有操作类型定义为常量也是有利的。允许您和其他团队成员轻松查看可能多个操作创建者的操作类型。

Redux API 文档或多或少说这取决于你,但在将操作类型定义为常量的积极列表中: https://redux.js.org/recipes/reducing-boilerplate#actions (就在 Action Creators 部分之前)

关于Redux - 我需要单独保留 Action 类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41668219/

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