2017-04-16 14 views
1

ちょうどRN ListView Documentationからこのスクリプトを読み込む方法を疑問に思っ:ListView.DataSourceはどのように使用されていますか?

var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); 

私は正確にListView.DataSource()に何を渡すのですか? 私はそれが関数として宣言されたrowHasChangedを持つオブジェクトだとしますか?したがって、関数が最終的にそれを保持しているときに呼び出されると、親はrowHasChangedを探して、それが宣言されている方法と同じように使うのを知っていますか?

本質的に、ListView.DataSourceを使用するときは、rowHasChangedを含むオブジェクトを定義する必要があります。

これを誤って解釈しています。

ありがとうございます!

答えて

3

rowHasChangedは、データ配列内の2つの項目の間で異なるコールバックのプロパティです。 最後に、DataSource-Objectの "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); 
+0

だから私たちはjavaのようなコンパレータの名前です。 – aligholamee

関連する問題