по нажатию на которую вызывается следующая функция:
fetchRecommendations = () => {
this.setState({ recommendations: {} })
const tags = [];
Object.keys(this.state.tags).map(key => (
this.state.tags[key] ? tags.push(key) : null
))
const payload = JSON.stringify({
"columns": ["description"],
"data": tags.join(" ")
});
const request = {
method: "post",
headers: { "Content-Type": "application/json" },
body: payload
}
fetch(`some-url`, request)
.then((response) => response.json())
.then(data => {
console.log(data);
this.setState({ recommendations: data });
})
}
в логе я вижу что данные из fetch прилетели в json-формате, все как ожидается, но когда дело доходит до .setState, то все падает с ошибкой:
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
но я в упор не понимаю почему так - пример с fetch взял из доки на офсайте
а зачем обнулять в начале стейт?
да, эту часть я убрал, плюс я понял что дело не в этой кнопке - она то как раз все делает хорошо, там какая-то странность на рендере этих элементов 🤷♂️
const tags = []; Object.keys(this.state.tags).map(key => ( this.state.tags[key] ? tags.push(key) : null )) что делает эта чатсь
У тебя проблема не с фетчем а где-то в другом месте Перечитай ошибку
Обсуждают сегодня