我在try 从API URL获取数据时遇到了一个问题,问题是数据不是通过SectionList中的类别标题返回的,而是在标题[object Object]
而不是renderSectionHeader
下返回的.
我的问题复制零食expo : https://snack.expo.dev/@fyardlest/resto-app?platform=android个
我在try 从API URL获取数据时遇到了一个问题,问题是数据不是通过SectionList中的类别标题返回的,而是在标题[object Object]
而不是renderSectionHeader
下返回的.
我的问题复制零食expo : https://snack.expo.dev/@fyardlest/resto-app?platform=android个
您的数据类型架构与SectionList要求不匹配.请看一下给定的链接.您的数据模式如下所示:
[
{ category: {title: 'Appetizers'}, id: 1, price: "10", title: "Spinach Artichoke Dip" },
~~~
~~~
]
但SectionList
成分股预计会出现以下情况:
[
{
title: 'Main dishes',
data: ['Pizza', 'Burger', 'Risotto'],
},
]
但是,除了第一个数组级别之外,SectionList
还需要更深一级.所以我觉得你应该用FlatList美元.
然而,主要的问题来自你的saveMenuItems
函数:
export function saveMenuItems(menuItems) {
db.transaction((tx) => {
const values = menuItems
.map(
(item) =>
`('${item.id}', '${item.title}', '${item.price}', '${item.category}')`
)
.join(', ');
tx.executeSql(
`insert into menuitems (uuid, title, price, category) values ${values};`
);
});
}
此函数将category
设置为[object Object]
,因为您使用的是${item.category}
,而item.categorty
是这样的对象:{ title: 'something' }
.然后在getSectionListData
内部,问题本身出现,并产生另一个问题.
我认为你应该在saveMenuItems
函数中使用${item.category.title}
.