为什么 setState 不触发重新渲染?
Why does the setState not trigger a re-render?
我正在尝试触发重新呈现以排除我的页眉和页脚。
当我登录页面时,它首先触发 render > componentDidMount > render,所以我假设页面确实更新了正确的值,但它仍然显示 header/footer.
constructor() {
super();
this.state = {
header: true,
footer: true,
};
}
componentDidMount() {
if (window.location.pathname === '/404-page') {
this.setState({ header: false, footer: false });
} else if (window.location.pathname === '/form') {
this.setState({ header: true, footer: false });
} else if (window.location.pathname.length > 6) {
this.setState({ header: true, footer: false });
}
}
render() {
{header ? <Header /> : null}
}
结果是 header/footer 不存在了。
首先你必须从 state
解构 属性 header
。然后显式 return
render() {
const {header} = this.state
return header ? <Header /> : null
}
我正在尝试触发重新呈现以排除我的页眉和页脚。
当我登录页面时,它首先触发 render > componentDidMount > render,所以我假设页面确实更新了正确的值,但它仍然显示 header/footer.
constructor() {
super();
this.state = {
header: true,
footer: true,
};
}
componentDidMount() {
if (window.location.pathname === '/404-page') {
this.setState({ header: false, footer: false });
} else if (window.location.pathname === '/form') {
this.setState({ header: true, footer: false });
} else if (window.location.pathname.length > 6) {
this.setState({ header: true, footer: false });
}
}
render() {
{header ? <Header /> : null}
}
结果是 header/footer 不存在了。
首先你必须从 state
解构 属性 header
。然后显式 return
render() {
const {header} = this.state
return header ? <Header /> : null
}