我可以使用use*函数(useState,useRef, useContext)在非渲染组件?



我想创建一个更容易访问我的API的实用程序类。由于API需要凭据,因此我需要访问存储用户信息的全局上下文。
但是这个API实用程序类并不是一个呈现组件,它只是一个带有调用API的函数的类。

那么我还能在这个类的函数中使用所有的use*函数吗?还是应该从给定的组件函数中调用useContext并将凭据传递给API类?

不,你只能在组件的主体中使用钩子,而不是在普通的函数/类中…

通过参数传递您的凭据或从其他模块获取凭据。

我提到的第二种情况的例子(从另一个模块获取凭证):

import cookie from "js-cookie";
function getToken() {
return cookie.get("token");
}

function getUserPermissions(id) {
axios.get("https://blahblahblah.com/.....", {
headers: {
Authorization: `Bearer ${getToken()}`
}
})
}

最新更新