setState 在事件函数内部不起作用

setState is not working inside event function

我已经在构造函数上声明了,

this.onProjectSelect.bind(this);

这是在渲染之外和构造函数之外,

onProjectSelect(event) {
    this.setState({project: event.target.value});
    event.preventDefault();
}

JSX 视图

<Select2
data={BasicStore.projectsSelect2Format}
onChange={this.onProjectSelect}
options={{
    placeholder: 'Search Project',
}}
/>

我不明白我这里的错误。请帮助我离开这里。谢谢

您是只是调用this.onProjectSelect.bind(this);还是将其分配回去this.onProjectSelectbind function returns 一个 new 函数,所以我希望看到:

this.onProjectSelect = this.onProjectSelect.bind(this);

我认为您可能遗漏了构造函数上的状态初始化,或者您只是在绑定中犯了一个错误。我会做这样的事情:

export default class Test extends Component{

  constructor(props) {
    super(props)

    this.state = {
      project: ''
    }
  }

  onProjectSelect = (e) => {
    this.setState({
      project: e.target.value
    });
  }

  render(){
    return (
      <Select2
        data={BasicStore.projectsSelect2Format}
        onChange={this.onProjectSelect}
        options={{
          placeholder: 'Search Project',
        }}
      />
    )
  }
}