React: How to wait data before using “this.state.x” into a function?

后端 未结 3 959
盖世英雄少女心
盖世英雄少女心 2021-01-06 03:41

I\'m currently learning React, and some stuff are not so easy for a newbie...

I have a simple component which renders this (note that it renders a

3条回答
  •  抹茶落季
    2021-01-06 04:38

    You can initialize the state with empty data before fetching, in constructor like this

    constructor(){
     ....,
     this.state = { house: null}
    }
    

    And put a condition in getSlots method which checks if data is fetched or not

    getSlots (viewing) {
    
        if (!this.state.house) {
           return [];
        }
    
        SOME STUFF...
    
        const monday = this.state.house.monday
    
        return SOME STUFF...
      }
    

    When the data arrives, then simply set the corresponding state like this

    componentDidMount(){
       fetch().then((houses) => {
          this.setState({ houses: houses })
       })
    }
    

提交回复
热议问题