Причина сбоя кода заключается в цели searchUrl
.
Быстрый просмотр, и я вижу, что searchUrl
, который формируется, когда пользователь вводит "Тим":
https://jsonplaceholder.typicode.com/userstim&page=1
Если вы посмотрите на HTTP-запрос, появляется ошибка 404:
GET https://jsonplaceholder.typicode.com/userstim&page=1
[HTTP/2 404 Not Found 18ms]
Итак, имейте в виду, что вы всегда должны смотреть в исходное сообщение об ошибке, вы, конечно, можете представить другое сообщение для конечного пользователя, но это было бы полезно для вас:
.catch(error => {
console.log("error: ", error.message);
if (axios.isCancel(error) || error) {
this.setState({
loading: false,
message: "Failed to fetch results.Please check network"
});
}
});
Итак, причина, по которой это не работает, - searchUrl
, указывающая на несуществующее местоположение конечной точки. Вы можете просто удалить query
и увидеть его в действии!
const searchUrl = `https://jsonplaceholder.typicode.com/users`;
Итак, исправьте searchUrl
и проверьте документацию API чтобы понять, что нужно сделать, чтобы отфильтровать по имени пользователя.
Это выходит за рамки вопроса, но вы можете отфильтровать данные после запроса к /users
, если способа извлечения по имени не существует .. .
data.filter(item => item.username === query)