react(3) react dva框架 点击修改state的值 类似react中的this.state和this.setState()

先展示下

点击改变前state的值


点击改变后state的值的变化



首先创建者两个文件



routes目录下的DvaState.js

import React from 'react';
import { connect } from 'dva';
import { Link } from 'dva/router';

let count  = 0
const DvaState = ({
      dispatch,
      dvaState,
      }) => {
  const {dataList} = dvaState
  console.log(dataList)
  console.log(dvaState)

  const handleChangeState = () => {
    dispatch({
      type:'dvaState/changeState',
      payload:{
        dataList:[
          {
            list1: count++,
            list2: 'list22',
            list3: 'list33'
          },
          {
            list2:'111'
          }
        ]
      }
    })
  }
  return (
    <div>
      <h2>dvaState</h2>
      <h2>{dataList[0].list1}</h2>
      <button onClick={handleChangeState}>改变state</button>
    </div>
  );
};


export default connect(({ dvaState }) => ({
  dvaState
}))(DvaState);

models 目录下的 dvaState.js

export default {

  namespace: 'dvaState',

  state: {
    dataList:[
      {
        list1:'a',
        list2:'c',
      }
    ]
},

  subscriptions: {
    setup({ dispatch, history }) {

    },
  },

  effects: {

  },

  reducers: {
    changeState(state, {payload}) {
      return {...state, ...payload}
    }
  },

};



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值