单击按钮后,我将调用发出请求的自定义钩子。单击按钮时,我在下面收到此错误。
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在函数内。