У меня есть следующие реакции компонента:Реагировать компонентов и Invalid Input
var App = React.createClass({
getInitialState: function() {
return {value: 4.5}
},
change: function(event) {
this.setState({value: parseFloat(event.target.value)});
},
render: function() {
return <input type="number" value={this.state.value} onChange={this.change}/>;
}
});
React.render(<App/>, document.body);
Вы можете увидеть здесь: http://jsfiddle.net/2hauj2qg/
Проблема заключается в том, что если я хочу, чтобы ввести число, например: «4.7» , Когда пользователь вводит «4.», он становится «4», из-за того, что он преобразуется в поплавок сзади. Но это прерывает то, что пользователь вводил. Каков рекомендуемый способ решения этой проблемы?
Как я отметил в своем вопросе, я знаю, что это из-за parseFloat. Ваше решение позволит мне сохранить строку, но мне нужны фактические числа в моей модели данных, а не строка. –
'this.state' - это состояние ui, вы можете преобразовать его в число, прежде чем передавать его в другом месте. Нет лучшего решения, о котором я знаю. – FakeRainBrigand