首先,我意识到有几个类似的问题,但没有一个答案有帮助。
无论如何,我有一个简单的列表视图,当我点击一个特定的行时,我想为它添加一些不同的样式和内容。
在_pressRow
我设置了state.selected_row
,这将呈现视图,在_renderRow
中确定所选行是什么以及样式是否适当应用,但出于某种原因{{1}只在初始渲染上调用,我怎样才能让它每次都更新,为什么这不会发生呢?
_renderRow
答案 0 :(得分:2)
我通过一起粘贴几个不同的答案来实现它......
_pressRow: function(rowId){
var clone = this.state.tours.map((item, i) => {
return {
...item,
selected: i == rowId ? true : false
}
});
this.setState({
data: clone,
selected_row: rowId,
dataSource: this.state.dataSource.cloneWithRows(clone)
});
},
您必须根据旧数据显式创建新对象。简单地改变属性不会出于某种原因。