我正在用React.js开发我自己的项目,我需要将状态从App.js传递到另一个组件(LoginPage)作为props
App.js
const [loginStatus, setLoginStatus] = useState(
() => !!JSON.parse(localStorage.getItem("user")),
);
}/>在loginPage中它的工作原理如下
dispatch(loginUser(body))
.then(response=>{
if(response.payload.loginSuccess){
localStorage.setItem('user',response.payload.loginSuccess)
props.setLoginStatus(true)
props.history.push("/")
}else{
alert('login failed')
}
})
}
和我试图登录,但发生错误,它说:未处理的拒绝(TypeError): props。setLoginStatus不是函数
我用谷歌搜索了一下。我发现,由于我在v5上使用了react-route,我需要编写代码这样的
<Route path="/login"><LoginPage setLoginStatus={setLoginStatus}/></Route>
ui.dev/react-router-v5-pass-props-to-components
,但结果是一样的。你能告诉我这个代码有什么问题吗?我该怎么做解决了吗?
感谢您的阅读,非常感谢您的帮助。
尝试在分配初始状态时删除回调
const [loginStatus, setLoginStatus] = useState(!!JSON.parse(localStorage.getItem("user")));
查看是否有效