如何获取此组件以加载“编辑页面”组件

时间:2019-05-09 19:24:59

标签: reactjs

在下面的代码中,我试图获取我的组件<Page>,以在用户创建页面后返回<EditPage>组件。但是,即使状态包含编辑页面组件的所有数据,render方法也始终返回<CreatePage>组件。

class Page extends React.Component {
  constructor(props) {
    super(props);

    this.authenticated = props.authenticated;
    this.state = {
      page: []
    };
  }

  componentDidMount = () => {
    let config = null;
    let token = null;
    const current = this;

    app
      .auth()
      .currentUser.getIdToken(true)
      .then(function(idToken) {
        token = idToken;
        config = {
          headers: { Authorization: idToken }
        };

        console.log(config);

        axios
          .get('http://localhost:4001/api/v1/user/page', config)
          .then(res => {
            const page = res.data;

            if (_.isEmpty(page)) {
              current.setState({ empty: 'empty' });
            } else {
              current.setState(page);
            }
          })
          .catch(err => {});
      });
  };

  render() {
    if (_.isEmpty(this.state.page)) {
      return <CreatePage />;
    } else {
      return <EditPage />;
    }
  }
}

export default Page;

1 个答案:

答案 0 :(得分:2)

我想setState的代码应该像这样,因为您要检查状态对象中的页面。

current.setState({ page })