export default function reducer(state: any = '', action: any) {
let newState = JSON.parse(JSON.stringify(state))
const { type, payload } = action
if (type === 'SAVE_RICHTEXT') {
newState = payload
} else if (type === 'CLEAR_RICHTEXT') {
newState = ''
}
else {
return state
}
return newState
}
在 Redux 中,reducer 是用来处理应用程序状态的纯函数。每个 reducer 都会接收先前的状态(或默认的初始状态)和一个 action 对象作为参数,并返回一个新的状态对象。这个新的状态对象代表了应用程序在处理这个 action 后应该拥有的状态。
当一个 action 被分发到 Redux Store 时,Redux Store 会调用所有的 reducer,并将先前的状态和这个 action 作为参数传递给每个 reducer。然后,每个 reducer 将检查 action 的 type 属性,以确定它是否应该处理这个 action。
如果一个 reducer 没有匹配到任何的 action 类型,它必须返回当前的状态,而不是新的状态对象。这就是为什么当一个 reducer 没有匹配到任何 action 类型时,它需要返回原数据的原因。因为如果 reducer 返回了 undefined,Redux Store 将抛出一个错误。
因此,如果你的 reducer 中没有匹配到任何 action 类型,你应该返回当前的状态对象,而不是 undefined。这个状态对象可以是从先前状态对象中派生的,也可以是一个全新的状态对象,具体取决于你的应用程序的需求。