Skip to content Skip to sidebar Skip to footer

Reactjs: What Is The Correct Way To Set A State Value As Array?

I have an array of object that get users data using fetch API. I have tried constructor, create a function, bind it. It didn't work. I tried ComponentDidMount and setState, it retu

Solution 1:

First initialize your state in your constructor like this

constructor(props) {
        super(props);
        this.state = {users : []} //initialize as array
    }

Then instead of that.state = {users: json}; set your state using

that.setState({ users: json });

Solution 2:

You should use the React setState() method.

that.setState({ users: json });

Solution 3:

You already got the answer to use setState({ users: json }), which is right.

As an alternative to initializing the array value like abul said, you could also do a conditional render, depending on the component state. I.e you can render a different component if the users aren't loaded yet.

render() {
   const users = this.state.users;
   return !users ?
      <p>Loading..</p> : 
      <YourComponentusers={users} />;
}

Post a Comment for "Reactjs: What Is The Correct Way To Set A State Value As Array?"