所以我有一个看起来像这样的数据响应 -
"data": [
{
"_id": "65a52c333972416e3ef579a9",
"kitchenName": "Micdamilare Cuisine",
"image": "https://1703115912.png"
},
{
"_id": "65a52c333972416e3ef579d3",
"kitchenName": "So Fresh",
"image": "https://1703192022.jpeg"
},
{
"_id": "65a52c333972416e3ef579c8",
"kitchenName": "The Nest Lounge",
"image": "https://1703082755.jpeg"
},
{
"_id": "65a52c333972416e3ef579ad",
"kitchenName": "Bobby Best Continental",
"image": "https://1705318137.jpeg"
},
{
"_id": "65a5345ae04e780a3a7038db",
"kitchenName": "Labule",
"image": "https://1705187022.jpeg"
},
// ...more objects here
]
我正在使用 useeffect 来调用此端点并将数据存储在数组中。现在,每次我离开页面并返回时,此端点都会调用,这是正确的,因为它是有用的,但问题是来自端点的数据不一致。所以我的意思是顺序改变,相同的数据,但顺序改变使得网站总是改变所显示内容的位置。有人告诉我要保留数据并运行一个条件,我没有明白他说的很好,但是在一次加载后不应再次调用端点,或者在一次加载后数据不应存储在该变量中,但我是新手所以不太明白他想说什么。有人可以给我一些简单的建议,告诉我该做什么,如果可能的话,提供一个突出显示该过程的代码。
我尝试将数据存储到本地存储并将其映射以显示 UI,但这是错误的,因为数据仍在设置中。也许考虑重新加载的条件会起作用,但我不知道该怎么做。
我看到您可能会考虑两种方法:
data
值按字典顺序对 _id
进行排序:data.sort((a,b) => a._id < b._id ? 1 : a._id > b._id ? -1 : 0)