проблема получения значения локального объекта хранения в реагирующих - PullRequest
0 голосов
/ 15 марта 2019

Я получаю undefined при получении user.firstName.Пожалуйста, дайте мне знать, что здесь не так.Спасибо.

class UserBlock extends Component {
 render() {
    const user = JSON.parse(localStorage.getItem("user"));

    return (
      <div>{user.firstName}</div>
    );
  }
}

Я могу получить user объект в консоли, как показано ниже:

{ id: 1, username: 'admin', password: 'admin', firstName: 'Admin', lastName: 'User', role: 'Admin' }

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Используйте функцию жизненного цикла componentDidMount (), она выполняет работу до того, как браузер обновит экран. (даже асинхронные вызовы). Подробнее об этом здесь

componentDidMount = () => {
  let user = JSON.parse(localStorage.getItem("user"));
  this.setState({user: user})
}

render() {
  const { user } = this.state
   return (
    <div>{user.firstName}</div>
   );
 }
}
0 голосов
/ 15 марта 2019

Попробуйте со следующим

class UserBlock extends Component {
 constructor(){
  const user = JSON.parse(localStorage.getItem("user"));
  this.state = {
      user
  };
 }
 render() {
    const { user } = this.state
    return (
      <div>{user.firstName}</div>
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...