React使用DVA本地state传值取值
2024-09-23 19:04:06
React使用DVA本地state传值取值
最近在用Ant Pro 做一个后台系统,在使用中发现Antd Pro使用DVA来实现
redux+sagas+router
一系列的功能,比传统方式要方便快捷的多,自己研究了其中一些原理,在此贴上代码供别人参考也给自己做个记录,
需要取值的页面
index.js
import { connect } from 'dva';
//这里是一个语法糖,和传统的connect()()作用一样。即把对应models目录下的state取出与本页的变量关联。
@connect(({ chart, loading, global = {} }) => ({ //其中global={}表示global中的所有state
chart, //等同chart:chart,ES6语法。
weather: global.weather, //读取原有的state,即models中的global.js文件中的weather
city: global.city
loading: loading.effects['chart/fetch'], //这个statu使用models中的chart.js文件中的fetch方法异步获取
}))
export default class XXX extends Component {
...
render(){
const { chart, loading, weather, city } = this.props; //在这可用'this.props'读取
}
}
含有state值的页面
chart.js
export default {
namespace: 'chart',
state: {
......
},
effects: { //这里相当于是redux
*fetch(_, { call, put }) {
const response = yield call(fakeChartData); //这里的fakeChartData是一个request请求
yield put({
type: 'save',
payload: response,
});
},
......
},
}
global.js
export default {
namespace: 'global',
state: {
collapsed: true,
notices: [],
city: "郑州市",
weather: {},
mapView: "city",
},
.......
}
最新文章
- Dynamics AX 2012 R2 安装Reporting Services 扩展
- Fix a corrupted user profile
- English Morphology
- 关于使用工具类org.apache.commons.collections.ListUtils合并List的问题
- sql日期函数
- Headroom.js
- 大约php,mysql,html数字寻呼和文本分页2分页样式供大家参考
- A标签-一个按钮样式
- 线上系统/tmp 目录不断增长分析与总结
- 从0开始的Python学习015输入与输出
- CF1062E Company
- springboot项目创建
- 【Teradata UDF】MD5加密
- GAN笔记——理论与实现
- [JSOI 2007]字符加密Cipher
- CI框架中自带的加密解密如何应用
- ArcGIS 概述
- hdu 1013 过山车 匈牙利算法(代码+详细注释)
- json转java对象
- HDU 6024 Building Shops
热门文章
- 阿里云人脸识别测试接口出错 返回Body:{ ";errno";: 1031, ";err_msg";: ";Invalid Image URL.";, ";request_id";: ";cdbe2927-e1bb-4eb1-a603-8fcd4b0b7fc8"; }
- gerrit原理
- MongoDB 入门
- MyBatis - 1.入门
- JCenter下载太慢, jcenter修改 https为http也许能帮助你
- 深入理解JSCore
- jquery源码中noConflict(防止$和jQuery的命名冲突)的实现原理
- php7安装参数编译
- 【BZOJ】3730: 震波
- CAS和ABA问题