当前位置:网站首页>useReducer基本用法
useReducer基本用法
2022-04-23 06:05:00 【念雅】
一、引入api
import React ,{useReducer}from 'react';
二、基本使用
设置数值count,默认初始值为0,
传入不同分发方式,‘add’,‘sub’,
根据action不同,返回不同数值。
function UseReducerDemo() {
const [count, dispatch]=useReducer((state,action)=>{
switch (action) {
case 'add':
return state+1;
case 'sub':
return state-1;
default:
return state;
}
},0)
return<div>
<h2>现在的分数值是:{count}分</h2>
<button style={
{marginRight:10}} onClick={()=>{dispatch('add')}}>加分</button>
<button onClick={()=>{dispatch('sub')}}>减分</button>
</div>
}
export default UseReducerDemo
三、效果图

例子完结。
四、其他相关用法
第二个参数接收值,也接受{}对象,eg:
const initialState = {count: 0};
const [state, dispatch] = useReducer(reducer, initialState);
也可以这样用
function init(initialCount) {
return {count: initialCount};
}
function reducer(state, action) {
switch (action.type) {
case 'increment':
return {count: state.count + 1};
case 'decrement':
return {count: state.count - 1};
case 'reset':
return init(action.payload);
default:
throw new Error();
}
}
function Counter({initialCount}) {
const [state, dispatch] = useReducer(reducer, initialCount, init);
return (
<>
Count: {state.count}
<button
onClick={() => dispatch({type: 'reset', payload: initialCount})}>
Reset
</button>
<button onClick={() => dispatch({type: 'decrement'})}>-</button>
<button onClick={() => dispatch({type: 'increment'})}>+</button>
</>
);
版权声明
本文为[念雅]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43865681/article/details/120418020
边栏推荐
猜你喜欢

qs.stringify 接口里把入参转为&连接的字符串(配合application/x-www-form-urlencoded请求头)

阿里云日志服务sls的典型应用场景

Dolphinscheduler调度sql任务建表时The query did not generate a result set异常解决

专用窗口函数rank, dense_rank, row_number

Winter combat camp hands-on combat - cloud essential environment preparation, hands-on practical operation, quickly build lamp environment, lead mouse cloud Xiaobao backpack without shadow

Static interface method calls are not supported at language level ‘5‘ 异常解决

Chaos帶你快速上手混沌工程

Chaos takes you to the chaos project quickly

Memcached source code analysis

Introduction to common APIs for EBFP programming
随机推荐
Winter combat camp hands-on combat - cloud essential environment preparation, hands-on practical operation, quickly build lamp environment, lead mouse cloud Xiaobao backpack without shadow
19C RAC修改VIP及SCANIP步骤-同网段
冬季实战营 动手实战-初识上云基础,动手实操ECS云服务器新手上路 领鼠标 云小宝 背包 无影
RAC环境集群组件gipc无法正确识别心跳网络状态问题分析
High performance gateway for interconnection between VPC and IDC based on dpdk
数据库的事务
基於ECS搭建雲上博客(雲小寶碼上送祝福,免費抽iphone13任務詳解)
oracle数据库将多个列的查询结果集合并到一行中
异常记录-17
Static interface method calls are not supported at language level ‘5‘ 异常解决
Prometheus的relabel_configs和metric_relabel_configs解释及用法示例
Abnormal record-11
oracle计算两日期相差多少秒,分钟,小时,天
Prometheus Thanos与Cortex组件比较
Typical application scenarios of alicloud log service SLS
Prometheus Thanos快速指南
Thanos Compact组件测试总结(处理历史数据)
Apache SeaTunnel 2.1.0部署及踩坑
JS format current time and date calculation
oracle中生成32位uuid