如果用户未经过身份验证,我正在尝试创建一个不挂载子包的包装器。否则,它会挂载并呈现子组件。 粗略看起来像这样:
export class RedirectOnCondition extends Component {
render(){
return this.props.isAuthenticated? this.props.children : null
}
}
我的问题是,在父母有机会评估病情之前,孩子仍然坐着。只有在孩子的componentWillMount`(以及任何相关的API调用已经触发并失败)之后,父级的渲染才会启动并移除子级。根据{{3}},这就是React的工作原理。
我怎样才能解决这个问题?
答案 0 :(得分:0)
在第一个渲染中,父组件可能尚未收到处理子组件的条件渲染所需的道具。在这种情况下,您可能需要先检查道具是否已经存在。
export class RedirectOnCondition extends Component {
render(){
return "isAuthenticated" in this.props ? this.props.isAuthenticated? this.props.children : null : null
}
}