Javascript ReactJS:render不';t根据道具更改样式值
我们正在ReactJS上构建wordpress生成器,遇到了一个看起来很奇怪的问题Javascript ReactJS:render不';t根据道具更改样式值,javascript,reactjs,Javascript,Reactjs,我们正在ReactJS上构建wordpress生成器,遇到了一个看起来很奇怪的问题 在 您可以看到带有一些CSS样式的wrapperStyle对象。样式应根据this.props进行更改。当this.props更改时,此对象的console.log将返回 this.props.fullSlideshowWidth=1920px 及 this.props.slideshowWidth=1400px 我希望DOM中的style属性也会改变它的值,但它不会改变 例如,如果访问全宽幻灯片页面,则“样式”
在 您可以看到带有一些CSS样式的
wrapperStyle
对象。样式应根据this.props
进行更改。当this.props
更改时,此对象的console.log
将返回
this.props.fullSlideshowWidth=1920px
及
this.props.slideshowWidth=1400px
我希望DOM中的style属性也会改变它的值,但它不会改变
例如,如果访问全宽幻灯片页面,则“样式”属性将具有最大宽度:1920px
。如果使用普通幻灯片访问不同的页面,样式属性将保持不变,尽管console.log
中的值将更改。您可以尝试
var-wrapperStyle={};
wrapperStyle.marginBottom=this.getFlux()。。。;
wrapperStyle.maxWidth=this.props。。。;
wrapperSytle.height=这个.props代码>谢谢你们试图帮助我的人,我通过编辑道具解决了这个问题:
slideshowWidth={this.state.settings.images.size.slideshow.width+'px!important'}
我刚刚删除了!重要信息
退出,并且可以正常工作,我仍然不明白为什么!重要提示
对道具有很大影响。看起来您是在根据高度变量的存在设置宽度值。this.props.slideshowFullHeight
正在设置吗?如果在return语句之前运行console.log(wrapperStyle)
,它会显示所有正确更改的值吗?您好,Andy,谢谢您的回答。是,如果运行console.log,则正确显示值this.props.slideshowFullHeight
仅通过此选项检查幻灯片放映设置是否设置为全宽:并且您确信每次道具更改时都会再次调用render()
?您所做的是完全有效的-构建一个样式对象,其属性根据道具/状态的不同而变化,这是一件相当正常的事情。我想知道Flux实现是否存在更大的问题,即在道具更改后抑制新的render()
调用?我刚刚制作了一个小屏幕录制,以实时向您显示问题。我认为this.props.slideshowFullHeight始终被解释为true,因为无论发生什么情况,都不会为this.props.fullSlideshowWidth分配空字符串。这没有多大变化,问题仍然存在。在这种情况下;maxWidth是可变的吗?maxWidth是css“max width”并且是可变的,我真的不知道是什么导致了这个问题