class WorldMap extends React.Component {
constructor(props){
super(props);
this.state = {
}
}
getGeography(){
let url = FormatUrl(`/api/category/sov-geography/`)
fetch(url)
.then(res => res.json())
.then(res => {
localStorage.setItem("india", res['india'])
localStorage.setItem("us", res['us'])
localStorage.setItem("uk", res['uk'])
})
}
customComponentDidMount(){
this.getGeography()
console.log(localStorage.getItem('us'))
}
}
在这里,我正在从一个api获取数据并将相同的数据存储在localStorage()中 但是当我在调用this.getGeography()函数后从localStorage()记录数据时 我正在获取空数据。
我的东西函数稍后再调用。 有什么办法可以解决这个问题。
请看看
答案 0 :(得分:1)
您可以像这样返回在getGeography
函数中获取所创建的承诺:
getGeography() {
let url = FormatUrl(`/api/category/sov-geography/`)
return fetch(url)
.then(res => res.json())
.then(res => {
localStorage.setItem("india", res['india'])
localStorage.setItem("us", res['us'])
localStorage.setItem("uk", res['uk'])
});
}
这意味着getGeography
将返回一个承诺,您可以像这样.then
:
customComponentDidMount() {
this.getGeography().then(() => {
console.log(localStorage.getItem('us'))
});
}