Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不显示平面列表数据_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 不显示平面列表数据

Javascript 不显示平面列表数据,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我正在开发一个React本地应用程序 我正在从RealmDB中获取数据,并根据listId对该数据进行分组 我想在平面列表中呈现以下数据,但没有显示任何数据 const data = { "6": [ { "id": 13, "listId": 6, "piece": 1, }, { "id": 12, &q

我正在开发一个React本地应用程序

我正在从RealmDB中获取
数据
,并根据
listId
对该数据进行分组

我想在平面列表中呈现以下数据,但没有显示任何数据

 const data = {
  "6": [
    {
      "id": 13,
      "listId": 6,
      "piece": 1,
    },
    {
      "id": 12,
      "listId": 6,
      "piece": 1,
    }
  ],
  "7": [
    {
      "id": 15,
      "listId": 7,
      "piece": 1,      
    },
    {
      "id": 14,
      "listId": 7,
      "piece": 1,       
    }
  ]
}
我的尝试是:

<FlatList
 numColumns={2}
 //keyExtractor={(item) => "key" + item.id}
 data={this.state.data}
 renderItem={({ item }) => (
     <View>
         <Text>{item.piece}</Text>
     </View>
 )}
/>
“key”+item.id}
data={this.state.data}
renderItem={({item})=>(
{item.piece}
)}
/>

FlatList
中,使用上述
数据的正确方法是什么?

您可以使用该方法调整数据:

const flatten = (data) => Object.values(data).flat();
const data = {
    "6": [
      {
        "id": 13,
        "listId": 6,
        "piece": 1,
      },
      {
        "id": 12,
        "listId": 6,
        "piece": 1,
      }
    ],
    "7": [
      {
        "id": 15,
        "listId": 7,
        "piece": 1,      
      },
      {
        "id": 14,
        "listId": 7,
        "piece": 1,       
      }
    ]
  };

const flatData = flatten(data);
然后您可以根据需要使用它:

flatData.map(item => item.piece)
如果不想更改数据样式,可以这样访问。
(
{项目[0]。项目}
{项目[1]。件}
)}
/>

根据,数据必须是普通数组,而您的是对象。您希望在
文本
组件中显示什么?
{item.piece}
。有没有办法将数据转换为普通数组?使用这种方法,我会丢失分组的数据。我试图在同一组中显示是否有任何块具有相同的
listId
You can access like this if don't want to change data style.

<FlatList
 numColumns={2}
 data={this.state.data}
 renderItem={({ item }) => (
     <View>
         <Text>{item[0].piece}</Text>
         <Text>{item[1].piece}</Text>
     </View>
 )}
/>