React native 对于FlatList,json响应是否必须始终以[]开头?

React native 对于FlatList,json响应是否必须始终以[]开头?,react-native,react-native-android,react-native-ios,React Native,React Native Android,React Native Ios,我使用flatlist来显示数据,作为回应,我得到了一些数据 但是,json响应字符串以{}括号开始,而不是以[]括号开始 因此,出现以下错误: 不变冲突:尝试获取超出范围索引Nan的帧 完成日志记录后,我在FlatList的数据源中得到的是[Object Object] 我检查了postman中的json响应及其类似内容:{{[]},简而言之,它不是以[]括号开头的 所以,我在这里有点困惑,FlatList必须有以[]括号开头的dataSource或json响应 如果不是,那么错误的原因是什么

我使用flatlist来显示数据,作为回应,我得到了一些数据

但是,json响应字符串以{}括号开始,而不是以[]括号开始

因此,出现以下错误:

不变冲突:尝试获取超出范围索引Nan的帧

完成日志记录后,我在FlatList的数据源中得到的是
[Object Object]

我检查了postman中的json响应及其类似内容:{{[]},简而言之,它不是以[]括号开头的

所以,我在这里有点困惑,FlatList必须有以[]括号开头的dataSource或json响应

如果不是,那么错误的原因是什么?如果是,如何将其转换为所需格式

谢谢

编辑

这样做:

 .then((response) => response.json())
      .then((responseJson) => {

        this.setState({ isLoading: false,dataSource: responseJson.screen_details})

      })
      .catch((error) => {
        console.error(error);
      });

但是,对象作为React子对象无效仍然存在问题。

对于
平面列表
数据
属性需要一个数组,如突出显示的。由于
FlatList
通过获取项目列表并为每个项目呈现单独的行来工作,因此
data
属性需要是一个数组

收到JSON数据后,我建议只将所需的数组传递给FlatList,例如:

<FlatList
    data={myResponse.listOfItems}
    ...
    />

其中,
myResponse
是您的JSON对象,
listOfItems
是您的项目数组


另外,根据文档,没有
数据源
属性,正确的属性只是
数据

好的,先生,但是我可以通过什么方式从我的响应访问数组:它是:{“状态”:1,“消息”:“成功获取记录”,“屏幕详细信息”:[{},{},{},{}}这里我需要screen_details
response.screen_details
我建议您研究一下JSON遍历,这样您就可以了解它是如何完成的:以及我可以把它放在哪里,比如在代码中:。然后((response)=>response.JSON())。然后((responseJson)=>{
this.setState({data:response.screen_details})
和平面列表中的
data={this.state.data}
。确保组件的初始状态将数据设置为空数组,例如
this.state={data:[]}
。我建议您阅读以获得更清晰的想法。对于最后的错误,您在
呈现
方法中似乎放置了结果或其他对象。在
呈现
的返回语句中只允许使用有效的JSX。这不太可能与您的
平面列表
问题相关。是的,我显示了在FlatList之前的文本中插入json响应,因此存在一些{}括号相关的问题,这就是为什么它会给出编辑错误:“对象作为子对象无效”