TypeError: this.setState не является функцией с функцией es6 - PullRequest
0 голосов
/ 11 июня 2019

Я понимаю, используя bind. (This) и функцию es6 fat arrow (именно это я и использую), но она по-прежнему возвращает это сообщение об ошибке, и я не могу понять, почему. Мой код:

РЕДАКТИРОВАТЬ: добавил остальную часть класса по запросу.

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 Ответ

2 голосов
/ 11 июня 2019

testAxios(e) {} не связан.

У вас есть 2 варианта:

  1. Свяжите this.testAxios с этим в конструкторе: this.testAxios = this.testAxios.bind(this);
  2. Использовать функцию стрелки: testAxios = (evt) => { ... }

Я предлагаю вам использовать функцию стрелки для всех пользовательских методов в компоненте класса.

...