【发布时间】:2018-09-12 18:32:48
【问题描述】:
我正在尝试使用新的 React 上下文来保存有关已登录用户的数据。
为此,我在一个名为 LoggedUserContext.js: 的文件中创建了一个上下文
import React from 'react';
export const LoggedUserContext = React.createContext(
);
果然,现在我可以使用消费者在其他组件中访问所述上下文,例如我在这里所做的:
<LoggedUserContext.Consumer>
{user => (
(LoggedUserContext.name) ? LoggedUserContext.name : 'Choose a user or create one';
)}
</LoggedUserContext.Consumer>
但显然,为了使这个系统有用,我需要在登录后修改我的上下文,以便它可以保存用户的数据。我正在使用 axios 调用 REST API,我需要将检索到的数据分配给我的上下文:
axios.get(`${SERVER_URL}/users/${this.state.id}`).then(response => { /*What should I do here?*/});
我认为在 React 的文档中没有办法做到这一点,但他们甚至提到保存登录用户的信息是他们考虑的上下文用例之一:
上下文旨在共享可被视为“全局”的数据 React 组件树,例如当前经过身份验证的用户, 主题或首选语言。例如,在下面的代码中,我们 手动穿过“主题”道具以设置按钮样式 组件:
那我该怎么做呢?
【问题讨论】:
标签: javascript reactjs authentication react-context