Я обнаружил ошибку в своем коде, я вызывал функцию вне моего обещания получения, в результате чего приложение иногда не обновлялось при обновлении списка поиска пользователей. Таким образом, в последней функции .then я не уверен, как ссылаться на функцию this.important (this.importantarguments), как обычно, когда они находятся вне запроса на выборку. В этом формате они приводят к неопределенности.
sendfriendrequest = (e, friend) => {
console.log("You want to be friends with: " + friend);
let thetitleofsomeonewewanttobecloseto = friend;
let username = this.state.username;
fetch(currentrooturl + 'users/requestfriendship', {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
credentials: 'same-origin',
body: JSON.stringify({
thetitleofsomeonewewanttobecloseto, username
})
})
.then(function(response) {
// You parse the data into a useable format using `.json()`
return response.json();
})
.then(function(data) {
// `data` is the parsed version of the JSON returned from the above endpoint.
// console.log("data: " + data); // { "userId": 1, "id": 1, "title": "...", "body": "..." }
console.log(data);
return data;
})
.catch(error => { console.log(error);
})
.then(function(data) {
this.limitedsearch(this.state.username, this.state.searchusers[0].length);
})
e.preventDefault(console.log(thetitleofsomeonewewanttobecloseto));
// research users to update list
// this.limitedsearch(this.state.username, this.state.searchusers[0].length);
}
0
Jesse Thompson
21 Дек 2019 в 04:52
1 ответ
Перед функцией извлечения вы можете сохранить ссылку на this
, а затем в then()
вы можете использовать эту ссылку ...
sendFriendRequest = (e, friend) => {
/* some code here */
let self = this; // Reference to this
fetch(/* some function arguments here */)
/* some then()s here */
.then(function(data) {
self.limitedsearch(self.state.username, self.state.searchusers[0].length);
self = null; // Destroy reference to avoid memory leaks
})
};
0
Kwame Opare Asiedu
21 Дек 2019 в 02:02
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.