2017-12-25 23 views
0

は私がネイティブ反応する新しいですので、私は、オブジェクトの配列にアクセスしている唯一の特定の値を取得したいネイティブ

export default class Send extends Component{ 
 
    constructor(props) 
 
    { 
 
    
 
     super(props); 
 
     const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); 
 
     this.state = { 
 
     userDataSource: ds, 
 
     isLoading: true, 
 
    
 
     PickerValueHolder : '', 
 
     amount:'', 
 
RxAmount:'', 
 
exchange:'', 
 
input1:'', 
 
recRate:[{},{},{}] 
 
    
 
    } 
 
    } 
 
    
 
    fetchUsers(){ 
 
     fetch('https://trs.php?some parameters') 
 
      .then((response) => response.json()) 
 
      .then((response) => { 
 
      console.log(response) 
 
       this.setState({ 
 
        userDataSource: this.state.userDataSource.cloneWithRows(response), 
 
        
 
       }); 
 
      }); 
 
    } 
 
     renderRow(user , sectionId, rowId, highlightRow,key){ 
 
      
 
       return(
 
       <View style={styles.row}> 
 
         <Text style={styles.rowText}> Rate {user[0].Rate}</Text> 
 
        </View> 
 
       
 
       ); }
<ListView 
 
    dataSource={this.state.userDataSource} 
 
    renderRow={this.renderRow.bind(this)} 
 
/>

i want to access the rate highlighted in yellow

を反応させます黄色で強調表示され、私はそれをどうすればできるのか分からない?

おかげ

答えて

2

ListViewコントロールはdeprecatedあり、あなたが代わりにFlatListを使用することを奨励しています。次のようになります(代わりにrenderRowの)

[ 
{MaxAmt:"value",MinAmt:"value",Rate:"value",RecieverID:"value"}, 
{MaxAmt:"value",MinAmt:"value",Rate:"value",RecieverID:"value"}, 
{MaxAmt:"value",MinAmt:"value",Rate:"value",RecieverID:"value"} 
] 

あなたrenderItem機能:の一つの理由は、あなたのuserDataSourceオブジェクトはこのようになっていることを

を提供その「簡単に使用するためのAPI」である

renderItem({item}){ 
    return(
     <View style={styles.row}> 
      <Text style={styles.rowText}> Rate {item.Rate}</Text> 
     </View> 
); 
} 

そして、あなたはこのようなあなたのリストを作成できます。

+0

スニペットコードを追加する答えを実装する方法を示すことができます –

+0

回答ありがとうございますが、私にはエラーが発生していますundefined is not object "item.Rate" –

+0

'item'オブジェクトが何であるかをデバッグするには、あなたは 'renderItem'関数の中で' alert(item); 'を使うことができます。これにより、すべてのアイテムが印刷されます。 ( 'alert(JSON.stringify(item))')を使わなければならないかもしれません。これは、アイテムオブジェクトが何で構成されているかを示します。そのため、「レート」が定義されていない理由がわかります。 – nating