react-redux - 将多个变量传递给 Redux Action 创建者。什么格式?
问题描述
我对 Redux 还很陌生,但到目前为止我已经掌握了它。我正在设置一个操作文件,我需要将两个值传递给有效负载。
请让我知道该问题是否已在其他地方提出而我错过了。
谢谢!克拉姆尼克
ps 下面是我草拟的
export const transferValues = (fromId, toId) => {
return {
type: VALUES_TRANSFER,
payload: { fromId, toId }, //should it be array? not sure about syntax here
};
};
解决方案
你也可以有一个类型的动作{ type: string, fromId: number, toId: number }
而不是一个单一的“有效载荷”。我认为这是一个偏好问题。你只需要相应地调整你的减速器。我个人更喜欢上面的尝试,因为它代表了单一属性,就像我在我的状态下也拥有它们一样。所以我可以做一个一对一的映射。例如:
// state
export type SessionState = {
+id: number,
+username: string,
+sessionId: string,
}
// reducer here
[...]
case SET_USERNAME:
const setUsernameAction = ((action: any): SetUsernameAction)
return {
...state,
username: setUsernameAction.username,
sessionId: setUsernameAction.sessionId,
}
[...]
// example action
export const setUsername = (username: string, sessionId: string): SetUsernameAction => {
return { type: SET_USERNAME, username, sessionId }
}
但是您肯定永远不会将数组用于多个属性。您将失去对属性的命名访问权限以及任何键入操作的机会。坚持使用对象,无论您要寻求什么解决方案。
推荐阅读
- spring - @ControllerAdvice 未捕获 Rest API 异常
- php - php - fpdf 选择案例 $row
- ios - 架构 arm64 的 1188 个重复符号
- blazor - 检测客户端关闭连接 Blazor
- python - 将字符串拆分到第 n 次出现的分隔符
- bash - 仅移动样本表中命名为特定行的那些文件
- python - 比较句子列表和单词列表,如果单词存在,则返回完整的句子
- angular - 如何制作三个状态的复选框
- typescript - Why import assignment makes module declaration with a relative module name valid?
- python - Python Requests login: i have error 403 but the request looks correct