Just wondering how to read this script from the RN ListView Documentation发送数据表单:
var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
我究竟要传递给ListView.DataSource()? 我想这是一个将rowHasChanged声明为函数的对象?因此,当函数最终被持有它的任何东西调用时,它的父级知道查找rowHasChanged,并将其用作声明方式吗?
基本上,在使用ListView.DataSource时,我们必须定义一个包含rowHasChanged的对象,这只是一个“要求”吗?
或者我是否错误地解释了这一点。
谢谢!
答案 0 :(得分:3)
rowHasChanged只是数据数组中两个项目之间回调的属性。 最后,您只需将带有值(或对象)的数组传递给封装在" cloneWithRows" -Method of DataSource-Object中的ListView。
import React, { Component } from 'react';
import { AppRegistry, ListView, Text, View } from 'react-native';
class ListViewBasics extends Component {
// Initialize the hardcoded data
constructor(props) {
super(props);
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
items: ds.cloneWithRows([
'John', 'Joel', 'James', 'Jimmy', 'Jackson', 'Jillian', 'Julie', 'Devin'
])
};
}
render() {
return (
<View style={{flex: 1, paddingTop: 22}}>
<ListView
dataSource={this.state.items}
renderRow={(rowData) => <Text>{rowData}</Text>}
/>
</View>
);
}
}
// App registration and rendering
AppRegistry.registerComponent('ListViewBasics', () => ListViewBasics);