グリッド内の2つの列にリストを交互に表示したいとします。私はコンポーネントの状態でフラグ変数を使用し、CardDetail
を返すたびにその値を変更します。ネイティブレンダリングコンポーネントを反応させる代わりに、状態を使用して
私はthis.changeState()
ステートメントを意図したとおりに動作していないと考えてコメントしました。
私がこれを理解するのを手助けしてください、私はReact/React Nativeを初めて使っています。 ありがとうございます。
renderAlbums() {
return this.state.albums.map(album =>{
this.rend2(album)
}
);
}
rend2(album){
if(this.state.flag === 0)
{
//this.changeState();
return (<CardDetail key={album.title} album={album} />);
}
else
{
//this.changeState;
return (<View />);
}
}
changeState(){
if(this.state.flag === 0)
{
this.setState({flag:1});
}
else
{
this.setState({flag:0})
}
}
render() {
console.log(this.state);
return (
<ScrollView>
<Grid>
<Col>{this.renderAlbums()}</Col>
<Col>{this.renderAlbums()}</Col>
</Grid>
</ScrollView>
);
}
}
あなたはカッコで囲まれた 'changeState'をトリガーしています。多分これは問題ですか?また、すべてのレンダリングで 'changeState'を呼び出すと、コードに無限ループが発生します。 – mersocarlin
私はかっこなしで 'changeState'を呼び出していました。それを変更しました。しかし、まだ動作しません。シミュレータは空白になります。ですから、無限ループの問題を修正するために、私は何を変えるべきですか? –
あなたは何をしたいのか分からない。 2つのリストがあり、 'CardDetail'がレンダリングされるたびに何らかの状態を変更する必要がありますか? – mersocarlin