react-native:在状态更改时重新呈现ListView中的行

时间:2016-05-21 21:02:34

标签: react-native

首先,我意识到有几个类似的问题,但没有一个答案有帮助。

无论如何,我有一个简单的列表视图,当我点击一个特定的行时,我想为它添加一些不同的样式和内容。

_pressRow我设置了state.selected_row,这将呈现视图,在_renderRow中确定所选行是什么以及样式是否适当应用,但出于某种原因{{1}只在初始渲染上调用,我怎样才能让它每次都更新,为什么这不会发生呢?

_renderRow

1 个答案:

答案 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)
    });

  },

您必须根据旧数据显式创建新对象。简单地改变属性不会出于某种原因。