首页 > 其他分享 >react中redux基本使用二

react中redux基本使用二

时间:2024-04-08 21:22:36浏览次数:21  
标签:基本 const reducer dispatch react createSlice user action redux

1. action传参,用payload属性接收

   <button onClick={()=>dispatch(addNum(2))}> +2</button>

 

2. redux 中异步 操作,与同步类似,需要比同步多封装一个函数// 使用RTK创建store, createSlice 创建reducer的切片

// 使用RTK创建store, createSlice 创建reducer的切片
import {createSlice } from "@reduxjs/toolkit";
const userSlice = createSlice({ // 需要一个配置对象作为参数,通过对象的不同属性来指定它的配置
  name:'user', // 用来自动生成 action 中的 type
  initialState:{ // state的初始值
    user:{
      id:'111',
      name:"zhang san",
      age:18
    }
  },
  // 指定state的各种操作,直接在对象中添加方法
  reducers:{
    setUser: (state,action)=>{
      state.user = action.payload;
    }
  }
})

// 切片对象会自动的帮助我们生成action
 const { setUser } = userSlice.actions


// 异步网络请求(模拟)
function queryUser(){
  return new Promise(resolve=>{
    setTimeout(()=>{
      resolve({id:'222',name:'li ha ha',age:18})
    },200)
  })
}
// 封装一个函数,调用同步方法去修改值
function getAsyncUser(){
  return async (dispatch)=>{
    const user = await queryUser();
    dispatch(setUser(user))
  }
}

export { getAsyncUser}
// 导出 reducer
export default userSlice.reducer

  

使用的时候也是通过dispatch 触发

import { useDispatch } from "react-redux"
import{getAsyncUser} from './store/modules/userStore'
  // 通过useDispatch() 来获取派发器对象
  const dispatch = useDispatch()
  dispatch(getAsyncUser())

  

标签:基本,const,reducer,dispatch,react,createSlice,user,action,redux
From: https://www.cnblogs.com/jlyuan/p/18122631

相关文章

  • 配置交换机 SSH 管理和端口安全——实验1:配置交换机基本安全和 SSH管理
    实验目的通过本实验可以掌握:交换机基本安全配置。SSH的工作原理和SSH服务端和客户端的配置。实验拓扑交换机基本安全和SSH管理实验拓扑如图所示。                                         交换机基本安全和SSH管理实验拓......
  • react中redux基本使用
    1.安装 npminstall@reduxjs/toolkitreact-redux2.创建store目录 3.创建counterStore.js//使用RTK创建store,createSlice创建reducer的切片import{createSlice}from"@reduxjs/toolkit";constcounterSlice=createSlice({//需要一个配置对象作为参数,通过......
  • 交换机的基本原理与配置_实验案例二:交换机的基本配置
    1、实验环境如图5.18所示、两台交换机互连,并与四台计算机连接在一起,设备之间接口的连接情况如表5-4所示。图5-18实验案例二示意图表5-4设备之间接口的连接情况设备接口接口设备SW1Fa0/24<————>Fa0/24SW2SW1Fa0/1<————>主机ASW1Fa0/2<————>主机BSW2Fa0/1<......
  • Linux基本命令入门详解
    Linux基本命令是Linux系统操作的基础,掌握这些命令对于初学者来说至关重要。下面将详细介绍一些常用的Linux基本命令,并附上实际例子。一、目录操作命令pwd:显示当前所在的目录路径。例子:在终端中输入pwd,将显示当前用户所在的目录路径,如/home/user。cd:切换目录。例子:输......
  • [React] Using key prop to reset component to avoid useEffect hook
    ThecomponentusinguseEffectwhichisnotnecessary:functionTopicEditor({selectedTopicId}){const[enteredNote,setEnteredNote]=useState('');constselectedTopic=DUMMY_TOPICS.find(topic=>topic.id===selectedTopicId)......
  • 全栈的自我修养 ———— react路由两种传参方法
    react路由传参1、传统传参跳转前:跳转后:结果:2、配置传参跳转前:配置routes:跳转后:结果:1、传统传参跳转前:import{useNavigate}from"react-router-dom";<divclassName='login'onClick={()=>navigator('/public/login?id=1')}> <div......
  • 全栈的自我修养 ———— react router6默认二级路由配置?嵌套时候如何实现默认导航
    在组件嵌套时候小编定义了一个共同组件于/public地址下,小编发现如果直接访问public是只有外部组件的页面,小编目标是访问public时候直接访问index页面,小编找了很多资料最终自己使出来了一个办法如下!!小编自己发现的后来查找到的小编自己发现的即把{pat......
  • 全栈的自我修养 ———— react未知地址默认导航至404页面
    方法1在根目录上添加一个errorElement{path:'/',element:<Navigateto="/public/index"replace/>,errorElement:<div>errorPage</div>},方法2{path:'*',element:<div>errorPage</di......
  • MPLS VPN基本知识
    MPLSVPN基本1、VPN中设备的角色        1.1CE:CustomEdge,直接与服务商相连的用户设备。(企业用户的网络设备:RTA,RTB,RTF,RTG)        1.2PE:ProviderEdgeRouter,指骨干网上的边缘路由器,与CE相连,主要负责VPN业务的接入。(运营商的设备:RTC,RTE)        1......
  • React中的Hooks---useEffect
    简介什么是ReactHooksReactHooks是在React16.8版本中引入的一项重大特性,旨在解决函数组件在复杂场景下的状态管理和生命周期问题。它们允许在不编写类组件的情况下使用state、生命周期方法等功能,使得函数组件更加简洁、易于理解和复用。作为ReactHooks的核心成员之一,useEf......