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.onProjectSelect
? bind
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',
}}
/>
)
}
}
我已经在构造函数上声明了,
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.onProjectSelect
? bind
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',
}}
/>
)
}
}