只能在函数体内调用钩子

时间:2019-10-26 02:11:40

标签: reactjs react-native react-hooks

单击按钮后,我将调用发出请求的自定义钩子。单击按钮时,我在下面收到此错误。

Hooks can only be called inside the body of a function

我正在使用“ react”:“ 16.8.3”和“ react-dom”:“ 16.8.3”。

这是我的代码的设置。

export const test = async (url, params) => {

  const [loading, setloading] = useState(true)
  const [results, setResults] = useState({});

  try {
    const response = await axios.post(url, params)

    if (response) {
      setResults({...response})
    } else {
      throw new Error('Error')
    }

  } catch (error) {
    console.log('error:', error)
  } finally {
    setloading(false)
  }

  return { results, loading }
}

 const Home = () => { 
   const login = () => {
    const params = { email: 'test@gmail.com', password: 'password' };
    const res = test(`http:localhost:3000/auth/login`, params)
  }

return (
   <Button onPress={login}>Sign in</Button>
  )

}

我认为这是可行的,因为useState在函数内。

0 个答案:

没有答案