【发布时间】:2018-07-31 20:20:32
【问题描述】:
React Native ListView:数据源状态更改后不会重新渲染行。
这是我的代码的简化版本:
render(): {
return <ListView
dataSource={this.state.DS}
renderRow={this.renderRow}/>
}
renderRow(item): {
return <TouchableOpacity onPress={() => this.handlePress(item)}>
{this.renderButton(item.prop1)}
</TouchableOpacity>
}
renderButton(prop1): {
if (prop1 == true) {
return <Text> Active </Text>
} else {
return <Text> Inactive </Text>
}
}
handlePress(item): {
**Change the prop1 of *item* in an array (clone of dataSource), then**
this.setState({
DS: this.state.DS.cloneWithRows(arrayFromAbove)
})
}
根据 Facebook 的示例,ListView 应该在每次更改数据源时重新呈现。是因为我只更改数据源中某个项目的属性吗?看起来 renderRow 函数没有重新渲染,但 render() 函数来自数据源更改。
谢谢。
【问题讨论】:
标签: react-native