Мне нужно передать этот вложенный объект БД для отображения функции в FlatList, но возвращает ошибку «Объекты недопустимы как дочерние элементы React».
Итак, я преобразую объект db с помощью JSON.stringify:
const data_db = realm.objects('List')
const data_json = JSON.stringify(data_db)
Но возвращаемая строка содержит строковый индекс для каждого объекта в массиве:
{
"0":{
"id": 0,
"total": 20.00,
"items":{
"0":{
"name": "list_0_item_1",
"value": 10.00,
},
"2":{
"name": "list_0_item_2",
"value": 10.00,
}
}
},
"1":{
"id": 1,
"total": 8.00,
"items":{
"0":{
"name": "list_1_item_1",
"value": 5.00,
},
"2":{
"name": "list_1_item_2",
"value": 3.00,
}
}
}
}
Что не поможет мне разрешить ситуацию. С этой строкой я не могу получить доступ к свойствам, очевидно.
Мне нужно что-то вроде этого, без индексов, как массив объектов, который хорошо работает в функции рендеринга:
[
{
"id": 0,
"total": 20.00,
"items":[
{
"name": "list_0_item_1",
"value": 10.00,
},
{
"name": "list_0_item_2",
"value": 10.00,
}
]
},
{
"id": 1,
"total": 8.00,
"items":[
{
"name": "list_1_item_1",
"value": 5.00,
},
{
"name": "list_1_item_2",
"value": 3.00,
}
]
}
]
Есть функция, позволяющая лучше переписать возвращаемый JSON stringify? Или, может быть, лучший способ передать вложенный объект db для рендеринга функции компонента flatlist без получения ошибки «объект не может быть дочерним элементом»? Спасибо!
EDIT_1: код FlatList:
return (
</Container>
<FlatList
data = { dataList }
keyboardShouldPersistTaps="handle"
keyExtractor={item => String(item.id)}
renderItem={( {item} ) => (
<Repository list={ item } />
)}
/>
</Container>
)
dataList - это состояние, которое содержит данные (например, data_db или data_json)
код возврата репозитория:
return (
<Container>
<Text>{list.id}</Text>
<Text>{list.total}</Text>
</Container>
)
Я пока не пытаюсь отобразить list.items