Reactjs 始终安装react引导模式
对于react bootsrap modal的当前实现,需要呈现该模式并传递一个Reactjs 始终安装react引导模式,reactjs,react-bootstrap,Reactjs,React Bootstrap,对于react bootsrap modal的当前实现,需要呈现该模式并传递一个showprop来确定是否显示该模式。 这意味着,如果我构建了一个围绕的组件,它将从第一次渲染开始挂载,所有初始化逻辑都将启动,即使没有显示模式。 有没有办法避免这种情况 如果我尝试执行{this.state.showmodel&&}而不是使用模态showprop-我将放弃动画和模态的正确隐藏 目前我无法使用路由器 不确定为什么不能使用React路由器,但通常的做法是不要在组件willmount中显示/隐藏逻辑,因
show
prop来确定是否显示该模式。这意味着,如果我构建了一个围绕
的组件,它将从第一次渲染开始挂载,所有初始化逻辑都将启动,即使没有显示模式。有没有办法避免这种情况
- 如果我尝试执行
而不是使用模态{this.state.showmodel&&}
prop-我将放弃动画和模态的正确隐藏show
- 目前我无法使用路由器
show
设置为true或false时,您可以使用或更简单地运行初始化逻辑
特别是如果您包装模式以创建
并维护相同的api,然后执行以下操作:
componentWillReceiveProps(nextProps) {
if (nextProps.show && !this.props.show) {
//opening
else if (!nextProps.show && this.props.show) {
// closing
}
}
补充评论:
如果您不喜欢这种方法,我建议您改为包装
,并将其插入模式,然后您的生命周期挂钩将按照您的预期运行,因为您正在将内容添加到在展会上挂载的模型部分。不确定为什么您不能使用React Router,但通常的方法是不要在组件中将显示/隐藏逻辑挂载,因为这不起作用
相反,当您将show
设置为true或false时,您可以使用或更简单地运行初始化逻辑
特别是如果您包装模式以创建
并维护相同的api,然后执行以下操作:
componentWillReceiveProps(nextProps) {
if (nextProps.show && !this.props.show) {
//opening
else if (!nextProps.show && this.props.show) {
// closing
}
}
补充评论:
如果您不喜欢这种方法,我建议您将其包装成
,并将其插入到一个模式中,那么您的生命周期挂钩将按照您的预期运行,因为您正在将内容添加到在展会上安装的模型部分。好吧。。。我觉得React inspector DOM树中显示的
有问题,尽管它不应该初始化或显示,但您看到的是渲染树中组件的存在,它实际上不是渲染的东西,您会注意到任何地方都没有DOM,此外,实际的模态会从文档体中呈现出来。更重要的是,这是工具中的失败,而不是组件API。香草引导从一开始就要求所有模式都在DOM中,除非您进行了一些奇特的包装。所以我们仍然做得更好。嗯。。。我觉得React inspector DOM树中显示的
有问题,尽管它不应该初始化或显示,但您看到的是渲染树中组件的存在,它实际上不是渲染的东西,您会注意到任何地方都没有DOM,此外,实际的模态会从文档体中呈现出来。更重要的是,这是工具中的失败,而不是组件API。香草引导从一开始就要求所有模式都在DOM中,除非您进行了一些奇特的包装。因此,我们仍然做得更好。