我想要將列表交替呈現爲網格中的兩列。我打算在組件狀態中使用標誌變量,並在每次返回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'。改變了它。但仍然不起作用。模擬器變爲空白。所以要解決無限循環問題,我應該改變什麼? –
我不明白你想要做什麼。你有兩個列表,每當'CardDetail'呈現時,你需要改變狀態? – mersocarlin