我正在学习react,并注意到当更改类型为event.target
的输入并输出event.target.value
时,我看到的值与输出event.target.value
时的值不同。我想知道这是为什么?
一些示例代码展示了我所说的内容:
class Child extends React.Component {
render() {
return (
<input type="number"
value={this.props.weight}
onChange={(event) => this.props.onWeightChange(event, this.props.index)}
step="0.1" />
);
}
}
class Parent extends React.Component {
state = {
text: 'Goals',
weight: 1
}
handleStatWeightChange = (event, index) => {
console.log(event.target)
console.log(event.target.value)
}
render() {
return (
<div>
<Child weight={this.state.weight} onWeightChange={this.handleStatWeightChange}/>
</div>
);
}
}
React.render(<Parent />, document.getElementById('app'));
当更改输入值(从1.1到1)时,我在控制台中看到以下输出:
"<input type='number' value='1' step='0.1' data-reactid='.0.0'>"
"1.1"
为什么event.target
中的值仍然是1?
发布于 2018-10-09 20:43:18
您没有将event.target.value设置为在handleStatWeightChange事件处理程序函数中加权。
试着用下面的方法改变它会起作用的
handleStatWeightChange = (event, index) => {
this.setState({
weight: event.target.value
})
console.log(event.target)
console.log(event.target.value)
}
https://stackoverflow.com/questions/52732452
复制相似问题