调用函数后如何记录数据

时间:2019-05-09 12:07:01

标签: reactjs

    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()记录数据时 我正在获取空数据。

我的东西函数稍后再调用。 有什么办法可以解决这个问题。

请看看

1 个答案:

答案 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'))
    });
}