Javascript 如何使用ListView.DataSource?

Javascript 如何使用ListView.DataSource?,javascript,listview,react-native,Javascript,Listview,React Native,只是想知道如何从以下位置阅读此脚本: 我到底在向ListView.DataSource()传递什么? 我想它是一个rowHasChanged声明为函数的对象?因此,当函数最终被持有它的任何函数调用时,它的父函数知道如何查找rowHasChanged,并按照声明的方式使用它 所以从本质上说,在使用ListView.DataSource时,我们必须定义一个包含rowHasChanged的对象,这“只是一个要求” 还是我的解释不正确 谢谢 rowHasChanged只是回调的一个属性,用于在数据数组中

只是想知道如何从以下位置阅读此脚本:

我到底在向ListView.DataSource()传递什么? 我想它是一个rowHasChanged声明为函数的对象?因此,当函数最终被持有它的任何函数调用时,它的父函数知道如何查找rowHasChanged,并按照声明的方式使用它

所以从本质上说,在使用ListView.DataSource时,我们必须定义一个包含rowHasChanged的对象,这“只是一个要求”

还是我的解释不正确


谢谢

rowHasChanged只是回调的一个属性,用于在数据数组中的两个项之间进行区分。 最后,只需将带有值(或对象)的数组传递给数据源对象的“cloneWithRows”方法中封装的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);
import React,{Component}来自'React';
从“react native”导入{AppRegistry,ListView,Text,View};
类ListViewBasics扩展组件{
//初始化硬编码数据
建造师(道具){
超级(道具);
const ds=new ListView.DataSource({rowHasChanged:(r1,r2)=>r1!==r2});
此.state={
项目:ds.cloneWithRows([
“约翰”、“乔”、“詹姆斯”、“吉米”、“杰克逊”、“吉利安”、“朱莉”、“德文”
])
};
}
render(){
返回(
{rowData}}
/>
);
}
}
//应用程序注册和呈现
注册表组件('ListViewBasics',()=>ListViewBasics);

这是一个比较器的名称,就像java中的比较器一样。
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);