FlatList 是否强制要求 json 响应始终以 [] 开头?

Is it Compulsory for FlatList that json response should start with [] always?

我正在使用 flatlist 来显示数据,作为响应,我得到了一些数据。

但是,json 响应字符串以{}大括号而不是 [] 方括号开头。

所以,出现以下错误:

不变违规:尝试获取超出范围索引 Nan.

的帧

做日志后,我在 FlatList 的数据源中得到的是 [Object Object]

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

所以,我有点困惑,FlatList 是否必须具有以 [] 方括号开头的数据源或 json 响应。

如果不是,那么错误可能是什么问题?如果是,我如何将其转换为所需格式?

谢谢。

编辑

这样做:

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

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

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

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

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

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

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

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

此外,根据文档,没有 dataSource 属性,正确的 属性 只是 data.