Я хочу иметь возможность использовать useEffect всегда, когда я меняю имя своей группы - PullRequest
0 голосов
/ 21 марта 2020
useEffect(() => {
  Axios.get(`https://taskcontrolapp.herokuapp.com/taskcontrol/grupo/${props.id}`)
    .then(response => {
      setGrupo(response.data)
    }).catch(error => {
      console.log(error)
    })
}, [])

У меня есть объект Grupo {grupo_id и grupo_nome}, и я хочу изменить grupo_nome и снова запустить useEffect, уже перепробовал множество переменных в качестве параметра и никогда не работает.

1 Ответ

0 голосов
/ 21 марта 2020

В нескольких статьях и соответствующих документах использование этого эффекта используется как плохая практика.

Рекомендуется либо обернуть его в useCallback, являющийся асинхронным c, либо обернуть в функцию внутри useEffect, затем вызовите функцию в useEffect.

См. эти статьи здесь:

Парень Абрамова

Официальные документы на заказ крючки

useEffect(() => {
  async function someFunc () {
   await Axios.get(`https://taskcontrolapp.herokuapp.com/taskcontrol/grupo/${props.id}`)
    .then(response => {
      setGrupo(response.data)
    }).catch(error => {
      console.log(error)
    })
 }

someFunc()

 return () => {
   // do some clean up here 
 }

// Note the dependency array here...
}, [props.id, grupo_nome])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...