用react

网友投稿 197 2023-07-31

用react

利用react-redux实现react组件数据之间数据共享

1.安装react-redux

$ npm i --save react-redux

2.从react-redux导入Prodiver组件将store赋予Provider的store属性,

将根组件用Provider包裹起来。

import {Provider,connect} from 'react-redux'

ReactDOM.render(

,document.getElementById('example'))

这样根组件中所有的子组件都可以获得store中的值

3.connect二次封装根组件

export default connect(mapStateToProps,mapDispatchToProps)(Wrap)

connect接收两个函数作为参数,一个mapStateToProps定义哪些store属性会被映射到根组件上的属性(把store传入reahttp://ct组件),一个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.在根组件引用子组件的位置用 将store数据传入子组件.

5.在子组件中调用actions中的方法来更新store中的数据

先将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 (

姓名:

密码:

)

}

}

因为我们采用了bindActionCreators函数,创建action后会立即自动调用store.dispatch(action)将数据更新到store.

这样我们就利用react-redux模块完成了reachttp://t各个组件之间数据共享。

跟上篇文章一样,实现了在一个组件Input中通过actions更新数据到store,然后在另一个组件Show中展示store中的数据

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:信息聚合平台:解读企业信息聚合的重要性
下一篇:数据库接口程序:简化数据管理的利器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~