我希望能够始终使用useEffect来更改组的名称

时间:2020-03-21 00:38:38

标签: reactjs axios react-hooks use-effect

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 :(得分:0)

根据几篇文章和react文档,将其放在useEffect中是不好的做法。

建议您将其包装在异步的useCallback中,或者将其包装在useEffect内部的函数中,然后在useEffect中调用该函数。

在此处查看这些文章:

The Abramov guy

Official docs on custom hooks

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])