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