当前位置: 首页 > news >正文

在react中 使用redux

1.安装redux

 npm install @reduxjs/toolkit react-redux

2.创建切片模块化数据

在Src目录下创建store目录,创建moude目录 创建tab.js

import { createSlice } from '@reduxjs/toolkit';
const tabSlice = createSlice({name: 'tab',initialState: {Collapse: false,},reducers: {setCollapse:(state,action)=>{state.Collapse = !state.Collapse}}
})
export const {setCollapse} = tabSlice.actions
export default tabSlice.reducer

3.创建store

在store目录下创建index.js

import { configureStore } from '@reduxjs/toolkit';
import TabData from './modules/tab.js'
export default configureStore({reducer: {Tab:TabData}
})

4.全局注册redux

src/inedx.js

import {Provider} from 'react-redux'
import store from './store'root.render(<React.StrictMode><Provider store={store}><App /></Provider></React.StrictMode>
);

 5.在页面获取展示数据

import { useSelector } from 'react-redux';const showMenu = useSelector((state) => state.Tab.Collapse);
//  state.Tab.Collapse
// Tab是reducer里定义的   Collapse 是initialState 里定义的

6.修改数据

import {useDispatch} from 'react-redux'
//实例化useDispatch
const dispatch = useDispatch()dispatch(setCollapse())
//setCollapse 是之前定义修改数据的方法

完整代码

import React from 'react';
import { Layout,Button,Avatar,Dropdown } from 'antd';
import './index.css';
import { MenuFoldOutlined } from '@ant-design/icons';
import {useDispatch} from 'react-redux'
import {setCollapse} from '../../../../store/modules/tab'
const { Header } = Layout;
const url = 'https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg';
const ComHeader = ({showMenu2}) => {const dispatch = useDispatch()const isShow = () => {dispatch(setCollapse())}const items = [{key: '1',// eslint-disable-next-line jsx-a11y/anchor-is-validlabel: (<a>个人中心</a>),},{key: '2',// eslint-disable-next-line jsx-a11y/anchor-is-validlabel: (<a onClick={()=>logout}>退出</a>),},];return (<Header className='header-container'><Button type="text" icon={<MenuFoldOutlined></MenuFoldOutlined>} style={{color: 'white',fontSize:'18px'}} onClick={()=>{isShow()}}></Button><Dropdown menu={{ items }}><Avatar src={<img src={url} alt="avatar" />} /></Dropdown></Header>)
}
export default ComHeader

http://www.lryc.cn/news/444110.html

相关文章:

  • 计算机毕业设计python+spark知识图谱房价预测系统 房源推荐系统 房源数据分析 房源可视化 房源大数据大屏 大数据毕业设计 机器学习
  • Spring-bean的生命周期-终篇
  • Kotlin 枚举和 when 表达式(六)
  • 数字范围按位与
  • WebRTC编译后替换libwebrtc.aar时提示找不到libjingle_peerconnection_so.so库
  • Nature Electronics |无感佩戴的纤维基电子皮肤(柔性半导体器件/柔性健康监测/电子皮肤/柔性传感/纤维器件)
  • 深入剖析Docker容器安全:挑战与应对策略
  • 后端技术打怪升级之路
  • Leetcode 3296. Minimum Number of Seconds to Make Mountain Height Zero
  • 计算机毕业设计之:基于深度学习的路面检测系统(源码+部署文档+讲解)
  • 测试面试题:接口自动化测试流程?
  • Golang面试题
  • 《飞机大战游戏》实训项目(Java GUI实现)(设计模式)(简易)
  • 计算机毕业设计 基于 Hadoop平台的岗位推荐系统 SpringBoot+Vue 前后端分离 附源码 讲解 文档
  • 【数据结构与算法】LeetCode:二分查找
  • 专题·大模型安全 | 生成式人工智能的内容安全风险与应对策略
  • CORS跨域+Nginx配置、Apache配置
  • 文件查找和打包压缩【1.7】
  • 速盾:cdn一般多长时间清理下缓存?
  • react hooks--useRef
  • GPT对话知识库——将寄存器中的一位数据读到变量中需要什么步骤?C语言中掩码的作用。
  • 【计算机网络】运输层协议解析
  • Redis存储原理
  • PHP、Java等其他语言转Go时选择GoFly快速快速开发框架指南
  • 【MySQL】获取最近7天和最近14天的订单数量,使用MySQL详细写出,使用不同的方法
  • WebView2新增、修改、删除、禁用右键菜单相关操作。
  • 使用vue创建项目
  • Apache CVE-2021-41773 漏洞攻略
  • 【redis-02】深入理解redis中RBD和AOF的持久化
  • 亚马逊IP关联揭秘:发生ip关联如何处理