什么是renderRow()

时间:2018-09-10 14:29:19

标签: react-native

我浏览了React-Native文档以弄清renderRow()是什么,但由于某种原因,我无法理解Facebook React-Native文档中的内容

这是官方文档所说的

renderRow

(rowData,sectionID,rowID,highlightRow)=>可渲染

从数据源及其ID中获取数据条目,并应返回要呈现为行的可呈现组件。默认情况下,数据正是输入到数据源中的数据,但是也可以提供自定义提取器。可以通过调用highlightRow(sectionID,rowID)突出显示行时通知ListView。这将在renderSeparator中设置booleanedRowHighlighted的布尔值,使您可以控制突出显示的行上方和下方的分隔符。可以通过调用highlightRow(null)重置行的突出显示状态。

[问题:] 有人可以用示例向我解释一下吗?

1 个答案:

答案 0 :(得分:2)

ListView已过时,请使用FlatList并使用等效的renderItem方法。这负责根据数据记录实际渲染每一行:

const data = [
  { key: '1', label: 'foo' },
  { key: '2', label: 'bar' }
]

renderTheItem = ({item}) => {
  return <Text>{item.label}</Text>
}

<FlatList
  data={data}
  renderItem={this.renderTheItem}
/>

呈现的结果将是这样的:

<View>   --> coming from FlatList wrapper
 <Text key="1">foo</Text>   --> coming from the custom renderTheItem function
 <Text key="2">bar</Text>
</View>

必须为每个数据记录添加唯一的键道具,或者定义一个keyExtractor函数。用item破坏渲染器函数中的({item})也很重要,因为它还有其他用documentation of FlatList编写的元参数。

renderItem({ item, index, separators}) => {}