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() - из изменения источника данных.
Спасибо.