我的函数没有从react-redux应用程序的handleChange调用

时间:2019-06-22 17:08:29

标签: javascript react-redux

我需要制作一个表单来提交多个选项之一,并且我需要使用react-redux,所以我不能使用本地状态来更改所选的选项

该应用确实可以正常工作(这意味着componentdidmount可以正常工作),但是如果选择其中一个,我会得到TypeError: Cannot read property 'props' of undefined

componentDidMount() {
    this.props.setModelSelector(data)
  }

  handleChange(event) {
   this.props.selectCar(event.target.value)//the function doesn't get called
    //this.props.setModelSelector(data)
    event.preventDefault();
  }

handleChange(event) {
   //this.props.selectCar(event.target.value)
    this.props.setModelSelector(data)//Even if i run the same function of componentDidMount i get the same error
    event.preventDefault();
  }

我还检查了event.target.value确实包含我需要更改形式显示的值的字符串

TypeError: Cannot read property 'props' of undefined
 handleChange
src/components/ModelDetailsContainer.js:40
   37 | 
    38 | handleChange(event) {
   39 |  // this.props.selectCar(event.target.value)
 > 40 |   this.props.setModelSelector(data)
      | ^  41 |   event.preventDefault();
    42 | }
   43 |

1 个答案:

答案 0 :(得分:1)

this在事件处理程序中反弹。将handleChange(event) {更改为handleChange = event => {,或在构造函数中执行this.handleChange = this.handleChange.bind(this);