我有一個React應用程序,其中包含選項卡和顯示的子項。如何將參數傳遞給React子的綁定函數?
<App>
<Nav>
<Tab1></Tab1>
<Tab2></Tab2>
<Tab3></Tab3>
</Nav>
<Section>Display Stuff Here</Section>
<Footer></Footer>
</App>
當我創造應用中的標籤,我有一個for循環,追加在地圖變量的標籤(這是應用程序的子陣營組件)。
for(...) {
tab = React.createElement(Tab, {changeDisplay:() => {this.handleClick(this.changeDisplay(i)}});
myMap.set(i, tab);
}
它應該做的是傳遞從for循環遞增的i變量。我甚至做了一個console.log以確保它通過了1,2,3,4。然而,實際顯示的是最後一個變量:4.
在Tab類中,我有權訪問調用道具:
class Tab extends React.Component {
constructor(props) {
super(props);
this.tab = React.Component('div', null);
}
render() {
return this.tab;
}
componentDidMount() {
this.forceUpdate();
}
componentWillUpdate(nextProps, nextState) {
this.tab = React.Component('div', {onClick: nextProps.changeDisplay});
}
}
爲changeDisplay的值應該是唯一的每個標籤,以便TAB2應該只具有2的值,並且TAB3應該只有3等的for循環不應該是使下值添加到已經創建的任何以前的標籤,因爲它們已經制作並附加到地圖變量中。
有關如何使這項工作的任何建議?
我可以自定義函數:
changeDisplay1() { changeDisplay(1) };
changeDisplay2() { changeDisplay(2) };
changeDisplay3() { changeDisplay{3) };
changeDisplay4() { changeDisplay(4) };
不過,我想這樣做的正確的方式,而不是使得黑客。
相關:https://stackoverflow.com/q/750486/5647260 – Li357
任何你不以另一種方式去做的理由?還是你堅持讓它以這種方式工作? – Win