Javascript “反应”;“价值”;如果设置为0,则道具未到达DOM

Javascript “反应”;“价值”;如果设置为0,则道具未到达DOM,javascript,reactjs,Javascript,Reactjs,我有一个React组件,它呈现一个由引导设置样式的元素。元素使用两个道具,value和max,并使用它们绘制进度条。它大部分时间都很有效。但是,当value=0时,value道具本身不会出现在DOM中。这会导致组件显示为一个“脉冲”的进度条(即,它的进度条部分永远从左向右滚动) 也就是说,Reactrender方法返回以下代码: 0/255 但这就是到达实际DOM的原因: 0/255 这是什么原因?它在所有其他情况下(即0

我有一个React组件,它呈现一个由引导设置样式的
元素。
元素使用两个道具,
value
max
,并使用它们绘制进度条。它大部分时间都很有效。但是,当
value=0
时,
value
道具本身不会出现在DOM中。这会导致组件显示为一个“脉冲”的进度条(即,它的进度条部分永远从左向右滚动)

也就是说,React
render
方法返回以下代码:

0/255

但这就是到达实际DOM的原因:

0/255

这是什么原因?它在所有其他情况下(即0value=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>
);
var barColor=“info”;
如果(row.fraction找到了(hacky?)解决方案

不知何故,
React.createElement
没有将值0传递给这个特定的html组件。表示该值必须是一个浮点数。因此,转换为两个十进制数使值
0.00
正确传递

尝试将代码更改为:


它应该会起作用。

你能发布你的渲染方法吗?@mrlew我在编辑中添加了它。在没有查看完整源代码的情况下,唯一想到的是,
行的数量是
未定义的
空的
,这会导致值属性没有被渲染。你能
控制台.log
它来检查值是否正确吗真的是零吗?@mrlew我也这么认为,但是
console.log
将数量显示为0。即使我将
value={0}
放在其中,也会发生同样的事情。这似乎是React或Javascript的某种优化。可能会将值转换为字符串?
{value.toString()}
太棒了,成功了!我尝试了
0.0
,但我想我需要额外的精度。谢谢!我也写了这篇文章,我发现这种行为是一种。而且显然已经被修复了。哇,就在13天前。谢谢提醒!