更新#2:私はJSFiddleにLinksScreen
とTimelineDay
のコードを掲載しました。すみませんでした。ボタン・プレスでの小道具の再レンダリング
更新:私のコードは、の提案を使用して再構成しました。私は現在、コンポーネントTimelineDay
の小道timelineData
を更新し、LinksScreen
クラスを再描画しようとしています。しかし、私のテストでは何も起こりません。私は州/小道具にはとても新しいので、アドバイスをいただければ幸いです。
非常に新しいReact/JS(初心者向けの警告)。ヘッダー内の
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: [. . ],
}
}
ボタンが付きtimelineData
小道具を更新するために、カスタムonPressX
機能を持っている
クラスLinksScreen
はフレキシボックスの小道具と意見や外部コンポーネントが含まれています。..さんは私の問題の肉の一部に取得してみましょう対応する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>
これらは、子どもが適切な配列
onPress1 =() => {
this.setState({timelineData: this.state.dayOne})
};
onPress2 =() => {
this.setState({timelineData: this.state.dayTwo})
};
onPress3 =() => {
this.setState({timelineData: this.state.dayThree})
};
とtimelineData
を支える再割り当て私はSETSTATE()を呼び出すことで、再レンダリング、ことを推測しています、対応するボタンの機能ですとも呼ばれます。しかし、これはこれは私がボタンをクリックすると、小道具の再割り当て時に再レンダリングしていることを望むTimelineDay
コンポーネントとtimelineData
小道具が含まれている方法である..私は私のテストでは観察困難が生じています何
です。
<View style={styles.eventScheduleView}>
<TimelineDay ref={(timelineData) => {
timelineData = this.state.timelineData}}>
</TimelineDay>
</View>
これはおそらく非常に治療上の問題ですが、私(および私の大学のハッカソン指導部チーム)にはさらに明確な説明が必要です。
参考になるリソース(Flux、statesなど)は自由に削除してください。ありがとうございました!
両方のコンポーネントに完全なコードを貼り付けることができます。誰もが見ているものを知っていますか?さもなければ、我々は推測している。また、なぜあなたが参照を使用しているかの手掛かり。コードを再フォーマットするともっと助けてくれるはずです。コンポーネントを別のコードセクションに分割するのではなく、2つのスニペット、親コンポーネント(LinkScreens)、子コンポーネント(TimelineDay)をポストするだけです。 –
あなたがReactの新人であれば、あなたはReduxのようなものを使用しようとすると、一貫性のようなスープに気分が盛り上がるでしょう。 –
申し訳ありません!私の最近のアップデートをチェックしてください。私は各@ daniel-zuzevichのJSFiddlesをリンクしました –