首页 > 解决方案 > 如果打印控制台日志是正常的。但执行是空的

问题描述

深度

<Body title="User List" subTitle="유저 목록 페이지입니다." store={this.props.store}>

<Sidebar store={this.props.store}/>

插入 2 个深度。

主要代码

setSidebar = () => {
  const url = `${API_URI.SIDEBAR}?token=${this.props.store.token}`;
  console.log(url) // token is not empty
  axios.get(url).then((data: any) => {
    this.setState({activeUrls: 
      data.data.map((sidebar: any) => {
        const path = this.getSidebarPath(sidebar);
        return sidebar.allowed ?
        <li key={sidebar.key} className="nav-item">
          <Link href={path}><a href={path} className="nav-link">
            <i className={sidebar.icon}></i>
            <span>{sidebar.title}</span>
          </a></Link>
        </li> : <li></li>
      })
    });
  });
}

componentDidMount() {
  {this.setSidebar()};
}

此代码不是空令牌值。

令牌为空

获取 http://localhost:8000/apis/sidebar?token=500

如果打印控制台日志是正常的。但执行是空的。

标签: javascriptreactjs

解决方案


您的代码有两个问题:

  • 您遇到 500 错误,这与反应无关,请检查控制台上的网络标签并验证您的 ajax 请求有什么问题
  • 您正在从异步函数返回 XML 并将其存储在状态中。不建议这样做

您应该做的是将数据本身存储在状态中并在渲染时使用 t:

render(){
return ...
       {this.state.ajaxData && ...}
}

推荐阅读