【发布时间】:2019-01-13 14:54:14
【问题描述】:
简要说明
所以我想要实现的是:在确认用户电子邮件地址和密码正确后,登录状态必须从 false 更新为 true。然而,登录状态是在我的 App.js 中设置的,登录确认是在我的 Login.js 中设置的。
代码
在我的 App.js 中,我有以下代码:
<UserProvider value={{
loggedIn: this.state.loggedIn,
actions: {
logIn: event => {
this.setState({ loggedIn: true })
}
}
}}>
<Route path='/' component={Login} />
</UserProvider>
在我的 Login.js 中,我在用户单击登录按钮后设置了一个箭头功能。
requestAuth = () => {
axios({
method: 'post',
url: process.env.REACT_APP_API_AUTH,
data: {
username: 'test',
password: 'test'
}
})
.then(
(response) => {
console.log(response)
this.setState({
feedback: "Alright, welcome back! I'm gonna log you in!"
})
}
)
.catch(
(error) => {
console.log(error)
this.setState({
feedback: "Sorry, I think your e-mail or password is incorrect. Wanna try again?"
})
}
);
}
render () {
return (
<UserConsumer>
{({ actions }) => {
return(
<div onClick={this.requestAuth}>
</div>
)
}}
</UserConsumer>
)
}
问题
但是,在我的登录请求成功后,我不明白如何在 App.js 中更新我的“actions.Login”事件集。
【问题讨论】:
-
不清楚您在更新登录时遇到了什么问题。并且未显示可能对此负责的 setLoginstate。
-
我更新了我的 Login.js 代码。我用 onlick 设置了一个 div 示例。我遇到的问题是: onclick 启动 requestauth 箭头功能。现在我想知道,在 axios 返回成功的响应后,我如何启动我的 actions.LogIn 事件(在 app.js 中的 userprovider 中定义的事件)。
标签: reactjs api axios consumer