react useReducer

这篇博客探讨了如何在React中使用useReducer来管理全局组件状态,以实现不同组件间状态的共享。通过一个计数器的例子,阐述了在实现加减操作时可能遇到的错误及解决方法。
摘要由CSDN通过智能技术生成

我们要修改下,将单一组件的状态提取出来,

提取成为全局的组件状态,方便各个组件使用!

为了测试这个东西,我们的设计是这样的,计数器

count 一个组件加,一个组件减

Cart 里面加

这个时候用到了reducer

import React, { useReducer } from 'react'
//此时state 就是 count 
function countReducer(state, action) {
    // 这里写法都是标准写法!
    // 我去上趟茅坑,回头接着写。。。
    // todos ...
    // 接着写,蚊子咬死我了,你知道的,夏天蚊子很多
    switch (action.type) {
        case "add":
            state++;
            return state;
            break;//论理说不会走到该语句,但是你写也没错啊,费代码,增加些数量,
        // 按照代码行数给钱!我发现现在做建筑的都喜欢挖坑,专门赚浮浅,死的快 
        //没有一个做大的!质量不行,把别人当傻子,最后也成为傻子,不扯了,我们继续写我们的代码
        case "minus":
            state--;
            return state;
            break;
        default:
            return state;
    }
}



const Cart = () => {
    const [state, dispatch] = useReducer(countReducer, 0);
    return (
        <div>
            <p> {state} </p>
            <button onClick={() => { dispatch({ type: "add" }) }}>+</button>
            <Hello state={state} dispatch={dispatch}></Hello>
        </div>
    );
};

// hello 里面减少
//hello 组件
const Hello = ({ state, dispatch }) => {
    return (
        <div>
            <p> {state} </p>
            <button onClick={() => { dispatch({ type: "minus" }) }}>-</button>
        </div>
    );
};

export default Cart;

上面代码很简单,但是初学者很容易写错

报如下错误

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值