В реагировать родной, что я должен использовать вместо componentWillMount - PullRequest
0 голосов
/ 07 октября 2019

ComponentWillMount был переименован и устарел, и его не рекомендуется использовать

  constructor(props) {
super(props);
this.state = {
  cartItems: []
};}


componentWillMount() {
AsyncStorage.getItem("CART", (err, res) => {
  if (!res) this.setState({ cartItems: [] });
  else this.setState({ cartItems: JSON.parse(res) });
});}

что мне нужно сделать, чтобы получить cartItems перед рендерингом ??

1 Ответ

2 голосов
/ 07 октября 2019

Эмпирическое правило. Ваш старый код (который реализует componentWillMount) выполняет какой-либо побочный эффект? Дело нет, это просто инициализация, и вы можете сделать это внутри constructor. Если вам нужно выполнить побочный эффект (например, вызов API), вы должны использовать componentDidMount вместо

state = { cartItems : [] } 

componentDidMount() {
    AsyncStorage.getItem("CART", (err, res) => {
        if (!res) this.setState({ cartItems: [] });
        else this.setState({ cartItems: JSON.parse(res) });
    });
}
...