首頁 >web前端 >js教程 >如何將react組件內資料進行共享

如何將react組件內資料進行共享

php中世界最好的语言
php中世界最好的语言原創
2018-06-09 11:59:101813瀏覽

這次帶給大家如何將react組件內資料進行共享,將react組件內資料進行共享的注意事項有哪些,以下就是實戰案例,一起來看一下。

利用react-redux實作react元件資料之間資料共享

#1.安裝react-redux

$ npm i --save react-redux

2.從react-redux導入Proper元件將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 (
    <p> 
  姓名:<input ref="name" type="text"/>
  密码:<input ref="pass" type="text"/>
  <button onClick={this.sure.bind(this)}>登录</button>
 </p>
  )
 }
}

因為我們採用了bindActionCreators函數,建立action後會立即自動呼叫store.dispatch(action)將資料更新到store.

這樣我們就利用react-redux模組完成了react各個元件之間資料共享。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

使用JS操作圖片只留黑白色

#實戰專案中如何使用vue元件

以上是如何將react組件內資料進行共享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn