私はnumber型の制御された入力ボックスをレンダリングする単純な反応クラスを持っています。React.jsクロムのカーソルフォーカスの問題
var Form = React.createClass({
getInitialState: function() {
return { value: 12.12 };
},
handleChange: function(e) {
this.setState({ value: e.target.value });
},
render: function() {
return (
<input
onChange = {(e) => this.handleChange(e)}
type = "number"
value = {this.state.value}
/>
);
}
});
ReactDOM.render(<Form /> , document.getElementById('container'));
このコードはjsfiddleにあります。
値を変更するには、数値を1つずつ削除して小数点を削除すると、突然入力ボックスの先頭にフォーカスが移動します。
これは最新のChromeブラウザ(54.0.2840.87)では発生しますが、Firefoxでは発生しません。
Chromeでstateの値の代わりにdefaultValueを使用すると、数値に10進数値を追加しても、フォーカスが開始位置に移動します。 (問題は10進値の追加または小数部分の削除の両方で発生します) jsfiddleを参照してください。
私は同様の質問への答えを見たhere。しかし、小数点まで数字を削除しようとすると、Chromeで問題は解決しません。
この問題を回避する方法はありますか?
ご協力いただきありがとうございます。