我正在开发一个包含以下类的应用程序:
<Details creature={this.state.creature} />
当类更新其状态时,它会更新creature
Details
道具。发生这种情况时,我希望Details使用新生物prop来使用CREATURES[this.props.creature].food
作为新的DataSource刷新ListView。
以下代码最初有效,但我无法弄清楚如何更新其dataSource:
var Details = React.createClass({
getInitialState: function(){
var ds = new ListView.DataSource({
rowHasChanged: (row1, row2) => row1 !== row2,
});
var cr = CREATURES[this.props.creature];
var rows = cr.food;
ds = ds.cloneWithRows(rows);
return {
dataSource:ds,
};
},
renderRow: function(rowData){
return (
<View>
<Text>{rowData}</Text>
</View>
);
},
render: function(){
return (
<ListView
ref="listview"
dataSource={this.state.dataSource}
renderRow={this.renderRow}
automaticallyAdjustContentInsets={false}
keyboardDismissMode="on-drag"
keyboardShouldPersistTaps={true}
showsVerticalScrollIndicator={true}/>
);
}
});
另外,我是新手,所以我可能会以完全错误的方式做这件事。
答案 0 :(得分:4)
您将使用componentWillReceiveProps传递更新道具并使用列表视图的更新数据源更新您的状态。
像(未经测试)的东西:
**********
* *
* *
* *
* *
* *
* *
* *
* *
**********