React.JS TypeError: Cannot read property 'number' of undefined - (inside setState)
React.JS TypeError: Cannot read property 'number' of undefined - (inside setState)
大家好,
在我的 ReactJS 网站上,我收到此错误 - `TypeError: Cannot read 属性 'number' of undefined`
`HTMLInputElement.anonymous`为什么?
我做了 console.log(this.state.number)
并且数字中有一个值。
class App extends Component {
constructor(props) {
super(props);
this.state = {
mobileNum: '',
number: '',
};
}
somefunction=()=>{ // Is called with onKeyDown - I checked it does.
this.setState({ number: document.getElementById('mySubmit').value });
enterPressed = () => {
const submit = document.getElementById('mySubmit');
submit.addEventListener('keyup', function (event) {
if (event.key === 'Enter') {
this.setState({ mobileNum: this.state.number }); // Here is the error line !
}
});
};
如果我在另一个函数中使用 setState
和 if
条件,它将出错 - setState is not a function
this.setState({ mobileNum: this.state.number })
也在我制作的不同功能中工作,但在 enterPressed()
中不是。
感谢各位帮手:)
应该是胖箭头函数
enterPressed = () => {
const submit = document.getElementById('mySubmit');
submit.addEventListener('keyup', (event) => {
if (event.key === 'Enter') {
this.setState({
mobileNum: this.state.number
});
}
});
};
您永远不会调用 someFunction()
,它应该为 this.state.number
分配一个数值。当您尝试将 this.state.number
分配给 mobileNum
时,值仍然是 undefined
.
您可以添加双向绑定,而不是在此函数中使用 HTML 选择器:
enterPressed = (e) => {
e.preventDefault();
let password = e.target.value();
this.setState({ ...this.state, mobileNum: password});
};
大家好,
在我的 ReactJS 网站上,我收到此错误 - `TypeError: Cannot read 属性 'number' of undefined`
`HTMLInputElement.anonymous`为什么?
我做了 console.log(this.state.number)
并且数字中有一个值。
class App extends Component {
constructor(props) {
super(props);
this.state = {
mobileNum: '',
number: '',
};
}
somefunction=()=>{ // Is called with onKeyDown - I checked it does.
this.setState({ number: document.getElementById('mySubmit').value });
enterPressed = () => {
const submit = document.getElementById('mySubmit');
submit.addEventListener('keyup', function (event) {
if (event.key === 'Enter') {
this.setState({ mobileNum: this.state.number }); // Here is the error line !
}
});
};
如果我在另一个函数中使用 setState
和 if
条件,它将出错 - setState is not a function
this.setState({ mobileNum: this.state.number })
也在我制作的不同功能中工作,但在 enterPressed()
中不是。
感谢各位帮手:)
应该是胖箭头函数
enterPressed = () => {
const submit = document.getElementById('mySubmit');
submit.addEventListener('keyup', (event) => {
if (event.key === 'Enter') {
this.setState({
mobileNum: this.state.number
});
}
});
};
您永远不会调用 someFunction()
,它应该为 this.state.number
分配一个数值。当您尝试将 this.state.number
分配给 mobileNum
时,值仍然是 undefined
.
您可以添加双向绑定,而不是在此函数中使用 HTML 选择器:
enterPressed = (e) => {
e.preventDefault();
let password = e.target.value();
this.setState({ ...this.state, mobileNum: password});
};