我有点奇怪的情况,我在我的应用程序中处理货币.在模型方面,我在发送到服务器之前将货币保存为美分,因为我不想在服务器端处理小数点.然而,在视图中,我希望显示正常货币而不是美分.
所以,我有这个输入字段,我从美元中获取数据并将其更改为美分:
<input name="balance" type="number" step="0.01" min="0" placeholder="Balance in cents" onChange={this.handleUpdate} value={this.props.user.balance / 100)} />
Run Code Online (Sandbox Code Playgroud)
当输入值发生变化时,我会在将其发送到上游之前将其更改为美分:
handleUpdate: function(e) {
var value = e.target.value;
// changing it back from cents to dollars
value = parseFloat(value) * 100;
// save back to the parent component managing the prop
this.props.onUserUpdate(value);
}
Run Code Online (Sandbox Code Playgroud)
这让我陷入僵局,我无法输入小数点"." 让我来证明:
33在输入框中 - >变为3300父状态 - > 33在组件prop中返回 - 一切都很好
33.3在输入框中 - >变为3330父状态 - > 33.3在组件prop中返回 - 全部好
33.在输入框中 - >变为3300父状态 …