更新#2:我發佈的代碼在JSFiddle LinksScreen
和TimelineDay
。對不起,我沒有那麼早做!React渲染道具數據按鈕在React
UPDATE:我重新構建我的代碼使用的建議。我現在嘗試更新timelineData
,在組件TimelineDay
的道具和重新渲染LinksScreen
類。但是,我的測試沒有任何反應。我對州/道具非常陌生,所以任何建議都會非常感謝。
很新的反應/ JS(新手警報)。讓我們來看看我的問題的肉部分..
類LinksScreen
包含道具和Flexbox的意見外部組件
import TimelineDay from '../components/TimelineDay.js';
export default class LinksScreen extends React.Component {
constructor() {
super();
this.onPress1 = this.onPress1.bind(this);
this.onPress2 = this.onPress2.bind(this);
this.onPress3 = this.onPress3.bind(this);
this.state = {
dayOne: [ . . ],
dayTwo: [. . ],
dayThree: [. . ],
}
}
按鈕頭具有自定義onPressX
功能更新timelineData
道具與對應dayOne
,dayTwo
或dayThree
數據。
render() {
return (
<View style={styles.container}>
<View style={styles.dayBar}>
<TouchableHighlight onPress={this.onPress1}>
<View>
<MaterialCommunityIcons name="numeric-1-box-outline" size={34} color="#FFD344"/>
<Text style={styles.day1Text}>Fri, 29th</Text>
</View>
</TouchableHighlight>
</View>
這些是對應的按鈕的功能重新分配子丙timelineData
與適當的陣列
onPress1 =() => {
this.setState({timelineData: this.state.dayOne})
};
onPress2 =() => {
this.setState({timelineData: this.state.dayTwo})
};
onPress3 =() => {
this.setState({timelineData: this.state.dayThree})
};
我猜測,通過調用的setState(),重新繪製也被稱爲。然而,這是我有困難遵守在我的測試..
這是一個包含了TimelineDay
組件和timelineData
道具,我希望在點擊按鈕已經重新呈現和道具重新分配的方法是什麼。
<View style={styles.eventScheduleView}>
<TimelineDay ref={(timelineData) => {
timelineData = this.state.timelineData}}>
</TimelineDay>
</View>
這可能是一個非常補救的問題,但我(和我大學的黑客馬拉松領導小組)需要額外的澄清。
隨意扔出去,將是有幫助的任何資源(流量,狀態等)。謝謝!
你可以發佈完整的代碼爲兩個組件,整齊地標記,所以每個人都知道他們在看什麼?否則我們猜測。此外,不知道你爲什麼使用參考。如果您重新格式化代碼,我可以提供更多幫助。不要將組件分成不同的代碼段,只需發佈兩個片段,父組件(LinkScreens)和子組件(TimelineDay)。 –
如果你是React的全新品牌,如果你嘗試使用Redux之類的東西,你的頭腦也會蒸發成一致的湯。 –
對不起!看看我最近的更新。我爲每個@ daniel-zuzevich鏈接了JSFiddles –