簡體   English   中英

如何在React中將狀態值從父元素傳遞給子元素

[英]How to pass state value from parent element to child in react

在我的代碼中,我有一個選項卡菜單,我想使用一個按鈕在這些選項卡之間切換。 我想將這些選項卡的值傳遞給按鈕的onclick函數,以便它可以在選項卡之間導航。

例如:

<Tabs value={this.state.value} onChange={this._handleChange}>
     <Tab label="1" value={1}>
         <RaisedButton label="Next" onTouchTap={this._handleChange} />
     </Tab>
     <Tab label="2" value={2}>
         <RaisedButton label="Next" onTouchTap={this._handleChange} />
     </Tab>
     <Tab label="3" value={3}>
         <RaisedButton label="Next" onTouchTap={this._handleChange} />
     </Tab>
</Tabs>

我的_handleChange函數只是將狀態設置為下一個選項卡的值

_handleChange: function(value) {
    this.setState({
      value: value,
    });
    console.log(this.state);
  }

我需要以某種方式從主選項卡元素中將onTouchTap事件與onChange事件鏈接起來,但是我不確定如何做到這一點。 我的主要目標是在三個可用選項卡之間導航:單擊tab1上的下一個按鈕時,它將轉換為tab2,然后轉換為tab3,最后返回至tab1。

有誰知道我能做到這一點嗎? 如果這些元素看起來很陌生,我還將使用材料UI。

您可以這樣做:


<Tabs value={this.state.value} onChange={this._handleChange}>
     <Tab label="1" value={1}>
         <RaisedButton label="Next" onTouchTap={this._handleChange.bind(this, 2)} />
     </Tab>
     <Tab label="2" value={2}>
         <RaisedButton label="Next" onTouchTap={this._handleChange.bind(this, 3)} />
     </Tab>
     <Tab label="3" value={3}>
         <RaisedButton label="Next" onTouchTap={this._handleChange.bind(this, 1)} />
     </Tab>
</Tabs>

盡管siu答案是正確的,但要注意setState()是異步調用,

您的console.log之后

this.setState({
  value: value,
});

可能會按您的預期輸出不同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM