91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

react-redux怎么實現react組件之間數據共享的方法

發布時間:2021-06-08 09:54:59 來源:億速云 閱讀:270 作者:小新 欄目:web開發

這篇文章主要為大家展示了“react-redux怎么實現react組件之間數據共享的方法”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“react-redux怎么實現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(
<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各個組件之間數據共享。

以上是“react-redux怎么實現react組件之間數據共享的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通道| 新蔡县| 兴化市| 且末县| 积石山| 山西省| 涡阳县| 镶黄旗| 城固县| 诸暨市| 教育| 阳谷县| 潞城市| 津市市| 婺源县| 鸡西市| 英德市| 海盐县| 济源市| 甘南县| 类乌齐县| 淄博市| 城市| 肥东县| 青阳县| 进贤县| 原平市| 新和县| 阜新| 雷山县| 济阳县| 嘉善县| 海宁市| 扶风县| 平江县| 自贡市| 县级市| 喜德县| 上杭县| 镇安县| 南昌市|