【发布时间】:2019-01-14 20:33:48
【问题描述】:
我正在构建一个简单的应用程序来存储我去过的地方。我有一个使用 db.json 文件作为我的数据库的本地快速服务器。我提出 2 个请求并遇到问题。
我想要做的是遍历这两个数组,这样当应用加载时,我去过的国家/地区就已经被预先选择了。这似乎是一个非常昂贵的调用,并且性能已经相当缓慢
在我触发 DOM 的第二次重新渲染然后它更新之前,它实际上并没有做我想做的事情。
例如如果我在数据库中预先选择克罗地亚和法国,然后加载应用程序,则没有选择。但是如果我然后选择韩国(例如)然后在访问列表中,突然所有 3 都是可见的
比较数组的更好方法是什么?考虑到对象键不一定相同
componentDidMount(){
axios.get('https://restcountries.eu/rest/v2/all').then((data) => {
const updatedCountries = data.data.map((country) => {
return {...country, visited: false, cities: [], showCities: false}
})
axios.get('http://localhost:3007/countries').then((countries) => {
const visitedCountries = countries.data
for (var i = 0; i < visitedCountries.length; i++){
for (var k = 0; k < updatedCountries.length; k++){
if(visitedCountries[i].name === updatedCountries[k].name){
updatedCountries[k].visited = true
}
}
}
})
this.setState({countries: updatedCountries})
})
}
【问题讨论】:
标签: javascript reactjs api