在下面的代码中,我试图获取我的组件<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;
答案 0 :(得分:2)
我想setState的代码应该像这样,因为您要检查状态对象中的页面。
current.setState({ page })