利用react-redux实现react组件数据之间数据共享
来源:互联网 发布:高频关键词共现矩阵 编辑:程序博客网 时间:2024/05/17 22:50
转载https://segmentfault.com/a/1190000009403046
1.安装react-redux$ npm i --save react-redux
2.从react-redux导入Prodiver组件将store赋予Provider的store属性,
将根组件用Provider包裹起来。
import {Provider,connect} from 'react-redux'ReactDOM.render(<Provider store={store}> <Wrap/></Provider>,document.getElementById('example'))
这样根组件中所有的子组件都可以获得store中的值3.connect二次封装根组件
export default connect(mapStateToProps,mapDispatchToProps)(Wrap)
connect接收两个函数作为参数,一个mapStateToProps定义哪些store属性会被映射到根组件上的属性(把store传入react组件),一个mapDispatchToProps定义哪些行为action可以作为根组件属性(把数据从react组件传入store)3.定义这两个映射函数
function mapStateToProps(state){ return { name:state.name, pass:state.pass }}function mapDispatchToProps(dispatch){ return {actions:bindActionCreators(actions,dispatch) }}
把store中的name,pass映射到根组件的name,pass属性。
actions是一个包含了action构建函数的对象,用bindActionCreators把对象actions绑定到根组件actions属性上。
4.在根组件引用子组件的位置用 <Show name={this.props.name} pass={this.props.pass}></Show>
将store数据传入子组件.
5.在子组件中调用actions中的方法来更新store中的数据
<Input actions={this.props.actions} ></Input>
先将actions作为属性传入子组件
子组件调用actions中的方法创建action
//Input组件export default class Input extends React.Component{sure(){this.props.actions.add({name:this.refs.name.value,pass:this.refs.pass.value})} render(){ return ( <div> 姓名:<input ref="name" type="text"/> 密码:<input ref="pass" type="text"/> <button onClick={this.sure.bind(this)}>登录</button> </div> ) }}
因为我们采用了bindActionCreators函数,创建action后会立即自动调用store.dispatch(action)将数据更新到store.
这样我们就利用react-redux模块完成了react各个组件之间数据共享。跟上篇文章一样,实现了在一个组件Input中通过actions更新数据到store,然后在另一个组件Show中展示store中的数据
- 利用react-redux实现react组件数据之间数据共享
- 使用原生redux模块在React组件之间实现数据共享小实例
- react-redux中的数据传递
- job-React 组件之间的传递数据
- react+redux+react-redux
- react---组件间数据传递
- react-redux,redux,react native之间的关系
- 容器组件和展示组件react-redux
- 实现简单的 react-redux
- react-redux
- React + Redux
- React&Redux
- react-redux
- React Redux
- react-redux
- react-redux
- React-Redux
- React Redux
- 0513
- CSDN日报20170513 ——《腾讯2017校招实习生面试总结》
- 数据可视化七条原则
- 关于js中call方法的理解
- mybatis相对于ibatis的优势
- 利用react-redux实现react组件数据之间数据共享
- Fragment+RadioButton实现点击切换页面效果
- Python学习之文件(一)
- CentOS7上elasticsearch5.0 常见问题
- 使用java 访问发送http协议, 发送Get请求跟Post请求
- Hibernate_Hibernate映射与查询练习题
- 求N个整数的平均值(注意N可能很大,N个数直接相加会造成整数溢出)
- 汇编入门基础与helloworld
- 关于setTimeout与setInterval返回值的问题