我相信你想要做的是:
<p>Vat 1 : {details.v1} Litres - % Full</p>
<div className='progress'>
<div
className='progress-bar'
role='progressbar'
aria-valuenow='70'
aria-valuemin='0'
aria-valuemax='100'
style={{width: details.v1 + '%'}}>
<span className='sr-only'>{parseFloat(details.v1*10)} % Complete</span>
</div>
</div>
一旦你在一对花括号里面,你就在一个javascript上下文中,所以除非你定义了一个对象字面值,否则你可以省去任何额外的大括号。
实际上,你的风格对象是的一个对象字面值。上面的等价于:
// somewhere up above
var style = {
width: details.v1 + '%'
};
// later
<p>Vat 1 : {details.v1} Litres - % Full</p>
<div className='progress'>
<div
className='progress-bar'
role='progressbar'
aria-valuenow='70'
aria-valuemin='0'
aria-valuemax='100'
style={style}>
<span className='sr-only'>{parseFloat(details.v1*10)} % Complete</span>
</div>
</div>
另外,如果你能使用ES6(ES2015又名“新”的JavaScript),可以使用template literals和多一点干净写:
style={{width: `${details.v1}%`}}>
话虽如此,你可能应该从其他地方通过prop
这个组件来控制这个值,所以当它改变的时候,你的组件也是如此。
或者更好的是,也许包装这个代码在<ProgressBar />
组件可能需要progress
支柱像<ProgressBar progress={75}/>
。
谢谢丹尼,它是有道理的包装在一个组件。 – LWNZ