我的react组件上有一个输入字段,用于显示某项的价格(两个小数位和数千个分隔符)。我希望显示的值在组件首次呈现时以money格式显示,并且还应保留为用户在字段中键入时的money格式。
目前,我的组件中包含以下代码:
var React = require('react');
import accounting from 'accounting';
MoneyInput = React.createClass({
propTypes: {
name: React.PropTypes.string.isRequired,
onChange: React.PropTypes.func.isRequired,
value: React.PropTypes.number,
error: React.PropTypes.string,
},
onChange(event) {
// get rid of any money formatting
event.target.value = accounting.unformat(event.target.value);
// pass the value on
this.props.onChange(event);
},
getValue() {
return accounting.formatNumber(this.props.value, 2)
},
render() {
return (
<div className="field">
<input type="text"
name={this.props.name}
className="form-control"
value={this.getValue()}
onChange={this.onChange} />
<div className="input">{this.props.error}</div>
</div>
);
}
});
module.exports = MoneyInput;
该代码显示格式正确的数据,但是每次我输入一个值时,光标就会跳到数字的末尾。
我了解为什么会发生这种情况(我认为),并且我在这里阅读了几个有关不丢失JavaScript中光标位置的问题
我的问题是在React中解决此问题的最佳方法是什么?
我认为,理想情况下,我不想将光标位置存储在状态下(例如,我希望它们成为Dan Abramov语法中的Presentation
Components
),所以还有另一种方法吗?
嗨,在github.com
https://github.com/facebook/react/issues/955上对此问题进行了讨论,请参阅11月30日的评论
您可能还希望在输入组件上使用setstate。
我一直在寻找答案,但我似乎找不到任何原因来解释为什么这是一个问题。在我的样式表中,我在不同的地方使用来处理按钮和链接等UI元素。大多数时候,它都像我预期的那样工作,但有时他们只是不想工作。我想说,我在样式表中有一个特定的示例,可以确保复制,但这就是问题所在。当它发生时,它不仅仅是针对一个元素,而是针对所有元素。我在现代浏览器中全面体验过这种情况,它似乎完全是随机的,这使得很难进行故障排除。 我唯一
好的,我已经在互联网上搜索了一下,试图弄清楚我必须在PhpStorm中更改哪一点才能让它停止这样做。 现在,当我在一些PHP上运行“重新格式化代码”时,它也决定为我优化导入。虽然通常我会说“哎呀,太好了”——在某些情况下,PhpStom并没有意识到它认为未使用的一些导入实际上已经使用过了。 注释作为代码等等。 请告诉我有人知道如何让PhpStom停止这样做。每当我自动格式化代码时,我都必须撤消对导
number(string $format): self string $format $config = [ 'path' => './tests' ]; $fileObject = new \Vtiful\Kernel\Excel($config); $fileObject = $fileObject->fileName('tutorial.xlsx'); $fileHan
问题内容: 我想在我们的jsp页面中格式化一些数字。 首先,我定义了一些资源 ...... 问题1: 我想知道“#”和“ 0”的含义是什么? 0.00,#0.00,##。00,### 0.00 谁能告诉我它们之间的区别?谢谢! 问题2: 如果我在动作BigDecimal number1中定义了BigDecimal类型; 然后我的页面应该使用一种格式来显示此值, 请忽略number <0 问题3:
问题内容: 我正在尝试格式化数字。例子: 它很常见,但是我不知道该使用哪个过滤器。 编辑:如果你有通用的Python方法可以执行此操作,那么很高兴在模型中添加一个格式化字段。 问题答案: Django的贡献人性化应用程序可以做到这一点: 确保将文件添加到列表中。
问题内容: 我正在尝试在JSX内部使用pre标签。当您在JSX中使用pre标签时,它根本不格式化。为什么?为了使用pre标签,我需要执行以下操作: 为什么? 问题答案: 使用模板文字 模板文字允许使用多行字符串,以保留前导/尾随空格和换行符。