【问题标题】:I want to access an array of object react native我想访问一组对象反应本机
【发布时间】:2017-12-25 13:11:54
【问题描述】:

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

我是新手,所以我想访问一组对象并只获得一个以黄色突出显示的特定值,我不知道该怎么做?

谢谢

【问题讨论】:

    标签: arrays listview react-native


    【解决方案1】:

    ListView 是deprecated,建议您改用FlatList。其中一个原因是因为它“更易于使用 API”

    假设您的 userDataSource 对象如下所示:

    [
     {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 函数(而不是renderRow)应如下所示:

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

    你可以像这样创建你的列表:

    <FlatList
        data=this.state.userDataSource
        renderItem={({item}) => this.renderItem(item)}
    />
    

    【讨论】:

    • 我添加了一个 sn-p 代码你能告诉我如何实现你的答案
    • 感谢您的回答,但它给我一个错误 undefined is not an object "item.Rate"
    • 要调试item对象是什么,你可以使用alert(item);里面的renderItem函数。这将打印出您的所有项目。 (您可能必须使用alert(JSON.stringify(item)))。这将告诉您项目对象是由什么组成的,因此您可以了解为什么它的 Rate 未定义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 2021-11-07
    • 2020-07-21
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多