Skip to content

Latest commit

 

History

History
18 lines (16 loc) · 746 Bytes

04.setState-in-componentWillMount.md

File metadata and controls

18 lines (16 loc) · 746 Bytes

避免在componentWillMount()中使用进行setState操作.

componentWillMount() 在组件将要挂载时被立即调用. 这个调用发生在render()函数执行之前, 所以如果在componentWillMount里面设置了state, 这个设置的state是不会触发重新渲染的. 同样我们也需要注意不要在componentWillMount()中引入其他可能会导致问题的代码.

如果你有类似的需求, 请在componentDidMount里面完成.

function componentDidMount() {
  axios.get(`api/messages`)
    .then((result) => {
      const messages = result.data
      console.log("COMPONENT WILL Mount messages : ", messages);
      this.setState({
        messages: [...messages.content]
      })
    })
}