вызов componentDidMount и componentDidUpdate для одного и того же кода

#javascript #reactjs #react-hooks

Вопрос:

 componentDidUpdate()
  {
    let data ;
    axios.get('http://localhost:8000/wel/')
    .then(res => {
      data = res.data;
      this.setState( {
        details: data
      });
    })
    .catch(err => {})
  }
 

Я хочу использовать один и тот же код для componentDidMount и для componentDidUpdate, но я не хочу повторять свой код(СУХОЕ правило).т. е. написание одних и тех же строк кода для обеих функций

Я новичок в реагировании 🙂

Ответ №1:

вы можете создать метод в своем компоненте и вызвать его в обоих местах:

 class Comp {
  doSomething() {  
    axios.get('http://localhost:8000/wel/')
      .then(res => {
        this.setState({ details: res.data });
      })
      .catch(err => {});
  }

  componentDidMount() {
    this.doSomething();
  }

  componentDidUpdate() {
    this.doSomething();
  }
}