react-redux简单使用

1.创建store文件夹,文件夹下创建index.jsx和reducer.jsx

reducer.jsx

//定义一个默认状态
const defaultState = {
    msg: "你好,世界"
}

//导出一个函数
// eslint-disable-next-line import/no-anonymous-default-export
export default (state = defaultState, action) => {
    let newState = JSON.parse(JSON.stringify(state))//使用深拷贝,不然数据不变化
    switch (action.type) {
        case 'changeValue':
            newState.msg = action.data;
            break
        default:
            break
    }
    return newState
}

index.jsx

import { legacy_createStore as createStore } from "redux";
import reducer from "./reducer";

const store = createStore(reducer)
export default store

2.index.js中使用Provider包裹并加入store

 3.使用connect,连接redux父容器与子容器

import React, { Fragment } from 'react'
import { connect } from 'react-redux'

function App(props) {
  return (
    <Fragment>
      <div>
        {props.msg}
      </div>
      <button onClick={() => props.changeValue('hello')}>修改显示</button>
    </Fragment>
  )
}

const mapStateToProps = (state) => {
  return {
    msg: state.msg
  }
}

const mapDispatchToProps = (dispatch) => {
  return {
    changeValue(msg) {
      const action = { type: 'changeValue', data: msg }
      dispatch(action)
    }
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(App)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值