我在路由器中传递状态作为道具,并尝试使用它,但它返回typeerror:不是一个函数(react.js)



我正在用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")));

查看是否有效

相关内容

最新更新