Redux-connect( )介绍
来源:互联网 发布:中国烟草待遇 知乎 编辑:程序博客网 时间:2024/05/22 13:51
React-dedux提供connect()
方法,用于从UI组件生成容器组件,connect
的意思就是把这两种组件连起来
import { connect } from 'react-redux'const VisibleTodoList = connect()(TodoList);
上面代码中,TodoList
是UI组件,VisibleTodoList
就是由React-redux通过connect
方法自动生成的容器组件
但是,因为没有定义业务逻辑,上面这个容器组件毫无意义,只是 UI 组件的一个单纯的包装层。为了定义业务逻辑,需要给出下面两方面的信息。
(1)输入逻辑:外部的数据(即state对象)如何转换为 UI 组件的参数(2)输出逻辑:用户发出的动作如何变为 Action 对象,从 UI 组件传出去。
connect方法的完整 API
import { connect } from 'react-redux'const VisibleTodoList = connect( mapStateToProps, mapDispatchToProps)(TodoList)
connect 接收两个参数,mapStateToProps
和mapDispatchToProps
,他们定义了UI组件的业务逻辑,前者负责输入逻辑,即state
映射到UI组件的参数(props),后者负责输出逻辑,即将用户对 UI组件的操作映射成Action
我理解的mapStateToProps相当于是在store中读取数据,与reducer没有关系,哪的是已有的数据,而不是执行reducer获取的,可以打印下state
看看,是一个对象,键名是reducer规则的名字,键值就是这个规则所对应的数据,如果说我们要获取store中对应的数据的话,就需要state.xxx(xxx表示我们定义的reducer规则)
mapDispatchToProps就是把action存到了一个名为userInfoActions的对象中了。如果说需要修改redux数据则需要通过action来完成,this.props.userInfoActions.xxxx(传参) (xxx表示action)
(个人理解,如有错误,欢迎指正。)
function mapStateToProps(state){ console.log(state) return { userinfo : state.userinfo } } function mapDispatchToProps(dispatch){ return { userInfoActions : bindActionCreators(userInfoActionsFromOtherFile,dispatch) } }
mapStateToProps(state)
,state就是store的全部状态,如果要获取某一个reduce的值就可以用state.xxx
eg:
const rootReducer = combineReducers({ userinfo})//这是两个不同js文件的 演示方便 我写一起了。。。function mapStateToProps(state) { return { //state就是store的全部状态,state.userinfo代表我只要userinfo(userinfo是一个reducer)返回的数据 userinfo: state.userinfo //返回的userinfo就被做成了props 这样子就可以传递给木偶组件 }}
这两个函数的核心价值在于,它能把 redux 中的数据和操作函数,作为 props 赋值到 react 组件中,这样就可以直接在 react 组件中进行操作——这样才是将 redux 和react 结合起来了
- Redux-connect( )介绍
- redux-async-connect
- Redux-Provider与connect
- redux中的connect函数
- Redux 介绍
- Redux 介绍
- redux介绍
- Redux 介绍
- Redux介绍
- react-redux的connect()方法
- redux的connect解读2
- Redux各知识点介绍
- Redux 介绍指南
- redux介绍 1
- react-redux的connect()方法 学习笔记
- react-redux 之 connect 方法详解
- react-redux中的connect方法解析
- React×Redux——react-redux库connect()方法与Provider组件
- Js鼠标放上去图片变大变小
- 一种动态屏幕适配的方法
- 名企笔试:2013 Facebook招聘笔试(查找相同url)
- 线性方程解法(齐次,非齐次)
- ajax传递给后台数组参数方式
- Redux-connect( )介绍
- 初学python笔记。
- ajax
- 一款安卓日历(一)
- 【资料合集】2017云栖大会·上海峰会回顾合集:PDF下载+现场视频
- Ext-用散点图(chart)分析相关性
- Zabbix监控oracle数据库
- Leetcode题解
- int整数转16进制