TypeError:this.setState不是带有es6函数的函数

时间:2019-06-11 13:54:23

标签: reactjs ecmascript-6 axios

我了解使用bind。(this)和es6胖箭头功能(即时通讯正在使用的功能),但它仍会返回此错误消息,我无法弄清原因。我的代码:

编辑:根据要求添加了班级的其余部分。

export default class Result extends Component {
    constructor(props) {
        super(props);
        this.state = {
            data:''
        }
    }



    testAxios(e) {

        e.preventDefault();

        axios.post('some api',
            {
                "Some-Data"
            })
            .then(response => {
                console.log('Returned Data:', response.data);
                this.setState({ data: response.data });
                console.log('State data:', this.state.data);
            })
            .catch(err => {
                console.log(err);
            })
    }


    render() {
        return ()
    }

1 个答案:

答案 0 :(得分:2)

testAxios(e) {}未绑定。

您有2个选择:

  1. 在构造函数中将此this.testAxios绑定到此: this.testAxios = this.testAxios.bind(this);
  2. 使用箭头功能:testAxios = (evt) => { ... }

我建议您对类组件中的所有自定义方法使用箭头功能。