【发布时间】:2019-04-22 22:57:09
【问题描述】:
我是 React 新手。这绝对让我感到困惑。我可以使用 event.target 访问 HTML 元素,它显示的值等于某个数字,但是每次我使用 event.target.value 时,我都会得到未定义。
我尝试过复制其他代码。我试过谷歌搜索和搜索堆栈溢出。我尝试使用 currentTarget 而不是 target 并获得完全相同的结果。这是非常简单的东西;怎么了?。
class Calculator extends React.Component {
constructor() {
super();
this.state = {
input : "0"
}
this.handleNumber = this.handleNumber.bind(this);
}
handleNumber(event) {
event.preventDefault();
console.log(event.target);
console.log(event.target.value);
}
render() {
return (
<div id="calculatorLayout">
<div id="display">{this.state.input}</div>
<div className="calculatorButtons" id="zero" value="0" onClick={this.handleNumber}>0</div>
<div className="calculatorButtons" id="one" value="1" onClick={this.handleNumber}>1</div>
<div className="calculatorButtons" id="two" value="2" onClick={this.handleNumber}>2</div>
...等等。
我希望在访问 event.target.value 时获得数字,但每次我都未定义。
event.target 返回:
<div class="calculatorButtons" id="zero" value="0">0</div>
event.target.value 相同元素返回:
undefined
我做错了什么?
【问题讨论】:
-
对于非
<input>元素,您必须使用event.target.getAttribute("value")。 -
非常感谢,添加为答案,我会接受。
标签: javascript reactjs