首页 > 解决方案 > React.JS TypeError:无法读取未定义的属性“编号”-(在 setState 内)

问题描述

大家好,
在我的 ReactJS 网站中,我收到此错误 - `TypeError: Cannot read property '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()不是。


感谢帮助者:)

标签: reactjsreact-nativeif-statementstatesetstate

解决方案


它应该是一个胖箭头函数

enterPressed = () => {
    const submit = document.getElementById('mySubmit');
    submit.addEventListener('keyup', (event) => {
        if (event.key === 'Enter') {
            this.setState({
                mobileNum: this.state.number
            });
        }
    });
};

推荐阅读