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 !
      }
    });
  };

如果我在另一个函数中使用 setStateif 条件,它将出错 - 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});
  };