我有一个React组件,呈现由Bootstrap设置的<progress/>
元素。 <progress/>
元素需要两个道具,value
和max
,并使用它们绘制进度条。它大部分时间都很好用。但是,当value=0
,value
prop本身不出现在DOM中。这导致组件显示为“脉动”的进度条(即,它的栏部分从左至右永远滚动)。如果设置为0,则反应“值”prop未到达DOM0
也就是说,下面的代码是由阵营render
方法返回: <progress value=0 max=255>0/255</progress>
但这是达到实际的DOM: <progress max=255>0/255</progress>
是什么原因造成的?它适用于所有其他情况(即,0 <最大值<)就好了。 value=0
时,如何正确渲染?
编辑:render()
函数低于:
var barColor = "info";
if (row.fraction <= 0.25)
barColor = "danger";
else if (row.fraction <= 0.50)
barColor = "warning";
return (
<div>
<Col md={10}>
<progress className={"progress progress-" + barColor} value={row.quantity} max={row.total}>
{row.quantity + "/" + row.total}
</progress>
</Col>
<Col md={2}>
<span style={{fontSize: "12px"}}>{row.quantity + "/" + row.total}</span>
</Col>
</div>
);
你可以发布你的渲染方法吗? – mrlew
@mrlew我在编辑中添加了它。 – sagargp
不考虑完整源代码的唯一想法是某些'row.quantity'是'undefined'或'null',导致价值道具不被渲染。你可以'console.log'来检查值是否真的为零? – mrlew