React Невозможно прочитать свойство setState из undefined в .then (), даже используя функцию стрелки - PullRequest
0 голосов
/ 16 января 2020

Не уверен, что я делаю не так. Я знаю, что не могу получить к нему доступ, но я подумал, что с помощью функции стрелки это можно решить. my console.log(this) возвращает неопределенное значение.

handleSubmit(event) {
    event.preventDefault();
    const formData = {
        username: event.target.username.value,
        password: event.target.password.value
    }
    fetch('http://localhost:4000/user/login', {
        method: "POST",
        mode: "cors",
        body: JSON.stringify(formData),
        headers: {
            "Content-Type": "application/json"
        }
    })
    .then((res) => res.json())
    .then((res) => {
        if(res.token == undefined) {
            console.log(this)
            this.setState({ logFailureMsg: res.message })
        } else {
            localStorage.setItem('authorization', `Bearer ${res.token}`);
        }

    })
    .catch(err => console.error(err)) 
}

1 Ответ

2 голосов
/ 16 января 2020

Это не функция стрелки. Измените свою функцию так, чтобы она выглядела следующим образом:

handleSubmit = event => {
    // your code...
}

Кроме того, не забывайте вызывать вашу функцию как this.handleSubmit, иначе this не будет привязан.

...