PHP*_*oob 4 javascript reactjs react-hooks
我正在研究中等规模的项目,并且反应中的一些组件是使用类以及组件级状态创建的。为了进行身份验证并将令牌保存在本地存储中并从中重新加载用户,我将使用一个钩子。
我现在对这个决定感到遗憾,就好像您要刷新类组件一样,您将失去用户并被踢回登录屏幕。
我知道钩子用于函数,但是有没有办法在类中使用钩子(也保留用户)?
//The hook I am using
useEffect(()=>{
auth.Context.loadUser();
//eslint-disable-next-line
},[]);
Run Code Online (Sandbox Code Playgroud)
根据 React 文档,您不能在类组件中使用钩子:https :
//reactjs.org/docs/hooks-faq.html#should-i-use-hooks-classes-or-a-mix-of-both
您可以做的是用功能组件包装您的类组件并将道具传递给它
例如:
class MyClass extends React.Component{
render(){
<div>{this.props.user}</div>
}
}
const funcComp = () => {
const [user, setUser] = useState();
useEffect(() => {
auth.Context.loadUser().then(user => setUser(user))
}, [setUser]);
return <MyClass user={user}/>
}
Run Code Online (Sandbox Code Playgroud)