ios - React native ListView 数据源设置(dataSource)

 爷_引领霸气 发布于 2022-10-30 01:00

我想从json解析数据后以listview的形式表现出来:

现在的问题是: 因为json取到的是一个结构体数组,里面有姓名,有编号,但是我并不能将取到的这个结构体数组设置成数据源,提示错误如下:

请问应该如何解决?

代码如下:(其中try1为设置listview的样式,只是之前做的试验,因为数据源没有设置成功所以还没有设置关联的数据)

import React, { Component } from 'react';
import { AppRegistry, ListView,StyleSheet,TouchableOpacity,Image,TouchableHighlight,center,Text, View } from 'react-native';

class ListViewBasics extends Component {
  // 初始化模拟数据
  constructor(props) {
    super(props);
    const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
    this.state = {
      dataSource: ds.cloneWithRows(this.try2())
    };
  }
  try1(){
    return (
                {'ss'}
             
             );
  }
  try2(){
    fetch('http://v.6.cn/coop/iphone/index.php?padapi=coop-iphone-top.php')
    .then((response) => response.json())
    .then((jsondata) => {
//      console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
//      console.log("用户名:"+jsondata.getwealth.d[0].username)
//      console.log("房号为:"+jsondata.getwealth.d[0].rid)

      return jsondata.getwealth.d;
    })
  }

  render() {
    return (
      
         this.try1()}
        />
      
    );
  }
}
1 个回答
  • 转:
    fetch是异步函数,你可以理解为它不能有返回值。举个例子,你去邮局寄信,你不会投完信后就站在那里等回信,那是不可能等到的。
    简而言之,不能在then中返回,只能在then中继续setState,把返回的数据放在state中。那么收到回信之前怎么办——你必须设定一个空的state初始值,或者render一个loading视图。

    2022-10-31 20:35 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有