React Native: Почему разрушение объектов не работает внутри обычных функций?
Использование использования деструктуризации объекта для разрушения моего состояния перед отправкой вызова в мой REST API, и это работает только внутри функции стрелки для меня. Я пытался вызвать его внутри обычной функции, и я продолжал получать сообщение об ошибке, что оно не определено. Примеры кода ниже
Я вызываю функцию в дочернем компоненте, я не уверен, имеет ли это значение. Ваша помощь будет принята с благодарностью, поэтому я могу изучить эту концепцию, спасибо!
Код я не понимаю, почему его взлом
async get() {
const { userData } = this.state
try {
const response = await http.get('/v1', {
userData
})
console.log('response', response);
await this.setState({friends: response.data});
} catch(err) {
console.log("error getting friends ", err);
}
}
** Код, который работает **
get = async () => {
const { userData } = this.state
try {
const response = await http.get('/v1', {
userData
})
console.log('response', response);
await this.setState({friends: response.data});
} catch(err) {
console.log("error getting friends ", err);
}
}
1 ответ
Я думаю, что ваш код не будет работать из-за this
ключевое слово. Понимание этого ключевого слова в JavaScript
Чтобы это работало. Вы можете привязать метод в конструкторе класса. Например.
class Example {
constructor(){
// ...
this.get = this.get.bind(this); // Or bind the method that you call get method
}
async get() {
const { userData } = this.state
try {
const response = await http.get('/v1', {
userData
})
console.log('response', response);
await this.setState({friends: response.data});
} catch(err) {
console.log("error getting friends ", err);
}
}
}