【发布时间】:2015-03-11 00:20:36
【问题描述】:
我在 React.js 和 Zurb Foundation 中构建了一个进度条,我想反映当前状态。我知道一开始我可以这样设置宽度:
render: function() {
var spanPercent = (this.props.a - this.props.b)/this.props.a + '%';
var spanStyle = {
width: spanPercent
};
return (
<div className="progress">
<span className="meter" style={spanStyle}></span>
</div>
);
}
但是,当 props 的值由于状态变化而变化时,即使 props 值发生变化,内联样式也不会更新。是否有这样做的最佳实践,例如使用回调或将代码放在其他地方?我将不胜感激!
【问题讨论】:
-
"当 props 的值由于状态变化而变化时" --- 这究竟是什么意思?
-
对不起,我的意思是说 this.props.a 从中获取集合的数据库中的数据发生了变化。我也会在ajax调用回来之前乐观地更新this.props.a的值
-
通常您可以订阅这些更改并使用
setState更改状态。 -
我正在使用setState,这确实更新了this.props.a的值,当我只是在组件的其他地方显示值时,就会反映出这种变化,但它并没有更新样式,而不是确定为什么这可能不会发生?
-
你的风格不依赖于状态,而是依赖于
props。状态在this.state
标签: javascript zurb-foundation reactjs