Javascript 为什么;这";在render()内工作,但不在其他函数上工作

Javascript 为什么;这";在render()内工作,但不在其他函数上工作,javascript,reactjs,class,this,Javascript,Reactjs,Class,This,我现在正在学习如何反应。有人向我介绍了一个关于“this”关键字的问题。基本上我了解它是如何工作的,但在react或者ES6课程中,我发现自己很困惑。例如,我有下面的类搜索栏,方法是onFormSubmit。如果我在这个方法中尝试console.log(this.state.term),它将抛出未定义属性的错误。我知道如何解决这个错误(箭头函数、绑定等),这不是我的问题。我的问题是,我不明白为什么OnFormSubmit()方法不起作用,但如果我在render()方法中使用console.log

我现在正在学习如何反应。有人向我介绍了一个关于“this”关键字的问题。基本上我了解它是如何工作的,但在react或者ES6课程中,我发现自己很困惑。例如,我有下面的类搜索栏,方法是onFormSubmit。如果我在这个方法中尝试console.log(this.state.term),它将抛出未定义属性的错误。我知道如何解决这个错误(箭头函数、绑定等),这不是我的问题。我的问题是,我不明白为什么OnFormSubmit()方法不起作用,但如果我在render()方法中使用console.log(this.state.term),它就会起作用

从“React”导入React;
类SearchBar扩展了React.Component{
状态={术语:'};
onFormSubmit(e){
e、 预防默认值();
console.log(this.state.term);//出现错误“无法读取未定义的属性”
}
render(){
返回(
图像搜索
this.setState({term:e.target.value})}
/>
);
}
}
导出默认搜索栏;

在JavaScript中非常特殊
在JavaScript中非常特殊
import React from 'react';

class SearchBar extends React.Component {

    state = {term: ''};

    onFormSubmit(e) {
        e.preventDefault();
        console.log(this.state.term); //here is the error "cannot read of undefined property"
    }

    render() {
        return(
            <div className="ui segment">
                <form onSubmit={this.onFormSubmit} className="ui form">
                    <div className="field">
                        <label>Image Search</label>
                        <input 
                            type="text" 
                            value={this.state.term}
                            onChange={(e) => this.setState({term: e.target.value})}
                        />
                    </div>
                </form>
            </div>
        );
    }
}

export default SearchBar;