【发布时间】:2026-01-29 00:00:01
【问题描述】:
我在对 react-native 下的数组进行排序时遇到问题。
所以我有这个从 url 获取的对象数组。
每个对象看起来像这样:
{id: "66", activityHash: "2814646673", hashOrigin: "activity", mapIcon: "th_cat.png", mapImage: "", …}
一旦我得到那个数组,我就会这样做:
data.Response.map
在这个 array.map 中,我对每个 'activityHash' 启动一个 SQLite 查询,它返回存储在本地 SQLite 数据库中的名称。
然后我将每个项目推入一个新数组中:
item.name = parsedJson.displayProperties.name
mapDataTemp.push(item)
最后,我想根据我刚刚在上面添加的名称键对其进行排序:
sortedMapData = [...mapDataTemp].sort((a, b) => {return a.name - b.name})
但除了一个条目(有 47 个)之外,我无法在屏幕上看到任何内容
我认为这是因为一旦我想对数组进行排序,array.map 进程还没有完成处理,但找不到正确的方法来纠正/解决它。 我刚开始 React-native 所以请原谅我的愚蠢问题:p
GetArcadiaData(this.url).then(data => {
this.setState({isLoading: false})
data.Response.map( (item, index) => {
if (item.hashOrigin == '111') {
item.name = I18n.t('maps_public_event')
mapDataTemp.push(item)
}
else {
sqliteReadHash(item.hashOrigin, item.activityHash)
.then((parsedJson) => {
//console.log(parsedJson.displayProperties.name)
item.name = parsedJson.displayProperties.name
mapDataTemp.push(item)
})
}
})
console.log(mapDataTemp)
sortedMapData = [...mapDataTemp].sort((a, b) => {return a.name - b.name})
console.log(sortedMapData)
this.setState({
mapData: sortedMapData
})
})
GetArcadiaData 是获取原始数据的函数
sqliteReadHash是读取本地数据库并收集activityHash对应的正确名称的函数
【问题讨论】:
标签: arrays sorting react-native