在redux中,action类型不匹配,为什么一定要返回一个值?

Redux的reducer是处理应用状态的纯函数,接收状态和action,根据action.type更新状态。当action不匹配时,应返回原始状态以避免错误。SAVE_RICHTEXT和CLEAR_RICHTEXT是示例action类型。
摘要由CSDN通过智能技术生成
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。这个状态对象可以是从先前状态对象中派生的,也可以是一个全新的状态对象,具体取决于你的应用程序的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值