【问题标题】:value is not getting stored in "state" by " this.setState({ value})"值没有被“this.setState({value})”存储在“状态”中
【发布时间】:2019-04-10 04:23:54
【问题描述】:

我从“已解码的令牌”中获取“用户”并将该用户设置为状态,但尽管“用户”具有值,但值并未存储在状态中。

这是我的代码。

class Complainer extends Component {

  state = {};

  componentDidMount() {

    const user = auth.getCurrentUser();

    console.log(user);

    this.setState({ user });

    if (!user) window.location = '/';

  }

但是用户没有被存储在状态中。请帮忙。

【问题讨论】:

  • 如果 auth.getCurrentUser 的输出正确,this.state.user 将在渲染方法中为用户提供。请提供更多信息。
  • 能否更新代码中的渲染部分?
  • 我的应用程序的根是登录页面。当用户登录时,系统将用户重定向到投诉页面。然后在 ComponentDidMount() 我从我的 getCurrentUser() 获取用户,我在其中解码令牌。
  • 类投诉扩展组件 { state = {}; componentDidMount() { const user = auth.getCurrentUser();控制台.log(用户); this.setState({ 用户 }); } render() { return (
    ); }

标签: reactjs jwt setstate react-state-management react-state


【解决方案1】:

试试这个代码:

class Complainer extends Component
{
  state = {
    user: '',
  };

  componentDidMount(){
    const user = auth.getCurrentUser();
    console.log(user);
    this.setState({
      user: user
    });
  }

  render(){

  return (
    <React.Fragment>
      <Navbar />
      <main className="container">
        <Switch>
          <Route path="/complainer/view-all" component={AllComplaints} />
          <Route path="/complainer/not-found" component={notfound} />
          <Showcase user={this.state.user} />
        </Switch>
      </main>
    </React.Fragment>
  );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多