reactjs - 关于如何在 Redux 中正确使用 reducer 的困惑
问题描述
我正在学习 Redux,想正确理解 reducer 的工作原理。如果您查看名为的减速器titleReducer
:
const initialState={
titleColor: null,
}
const titleReducer = (state = initialState, action) => {
switch (action.type) {
case TURN_TITLE_GREEN:
return {
...state,
titleColor: 'green'
}
case UPDATE_TITLE:
return {
...state,
title: action.payload
}
default: return state;
}
}
所以,我想对上面的代码提出一些问题。首先,假设有三个reducer:reducer1。reducer2 和 titleReducer(我知道愚蠢的例子,但请耐心等待)。问题是为什么即使 titleReducer 的状态只有一个属性“titleColor”,我们还需要使用 ...state 创建新的状态副本。如果我们只使用:
{
title: action.payload
}
每次 titleReducer 获得“TURN_TITLE_GREEN”动作时,第二个问题都可以,reducer 会采用先前的状态并创建一个新副本并发送回组件。问题是“之前的状态是从哪里获取的?我的意思是,当 titleReducer 收到 TURN_TITLE_GREEN 的操作时,它是否会创建新副本,同时将 'titleColor: 'green' 置于将作为下一次之前的状态。是这样吗?
解决方案
推荐阅读
- c# - Windows Server 2019 上 IIS 上的 ASP.NET 应用程序更新
- node.js - 如何在 Node.js 快速路由上显示从外部 URL 获取的图像
- function - 带字符串消息的功能,回显到屏幕,更改消息的颜色
- powershell - npm install discord.io winston –save 404
- azure - ASP.NET Core 3.1.2 应用无法在 Azure 应用服务中启动
- php - 将自定义的旧版 PHP Web 应用程序迁移到 Laravel
- angular8 - 如何在primeng下拉列表中更改自定义错误消息
- oracle - 如何在 oracle 中使用 REGEXP 提取列的特定部分?
- html - 如何调整组的大小如果它们超过 2,出现在同一行?
- java - 访问在一个类中填充的 ArrayList,在另一个类中