Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript setState在事件函数内部不起作用_Javascript_Reactjs_Flux - Fatal编程技术网

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

Javascript setState在事件函数内部不起作用,javascript,reactjs,flux,Javascript,Reactjs,Flux,我在构造函数上声明 this.onProjectSelect.bind(this); onProjectSelect(event) { this.setState({project: event.target.value}); event.preventDefault(); } 这是在渲染外部和构造函数外部 this.onProjectSelect.bind(this); onProjectSelect(event) { this.setState({project

我在构造函数上声明

this.onProjectSelect.bind(this);
onProjectSelect(event) {
    this.setState({project: event.target.value});
    event.preventDefault();
}
这是在渲染外部和构造函数外部

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)或您是否将其分配回转到此.onProjectSelect
?返回一个新函数,因此我希望看到:

this.onProjectSelect = this.onProjectSelect.bind(this);
您正在调用
this.onProjectSelect.bind(this)或您是否将其分配回转到此.onProjectSelect
?返回一个新函数,因此我希望看到:

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',
        }}
      />
    )
  }
}
导出默认类测试扩展组件{
建造师(道具){
超级(道具)
此.state={
项目:“”
}
}
onProjectSelect=(e)=>{
这是我的国家({
项目:e.target.value
});
}
render(){
返回(
)
}
}

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

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',
        }}
      />
    )
  }
}
导出默认类测试扩展组件{
建造师(道具){
超级(道具)
此.state={
项目:“”
}
}
onProjectSelect=(e)=>{
这是我的国家({
项目:e.target.value
});
}
render(){
返回(
)
}
}

使用箭头函数比公认答案更简洁,IMO使用箭头函数比公认答案更简洁,IMO