#javascript #reactjs
#javascript #reactjs
Вопрос:
Я пытаюсь добавить данные в массив объектов, которые будут выглядеть следующим образом:
[
{text: 'title content | subtitle content'},
{text: 'more title content | and more subtitle content'},
{text: 'even more title content | and some more subtitle content'}
]
Мои данные поступают из запроса на выборку, возвращая массив объектов. Я пытаюсь установить данные, которые я получаю от запроса на выборку, в массив с именем «array», например:
let data = this.state.data; //data from fetch request
array.push(data.map(item, i) => {
{text: `{item.content_title | {item.content_subtitle}`}
});
Я поместил приведенный выше кодовый блок в метод componentDidMount()
жизненного цикла. Я получаю ошибку синтаксического анализа при запуске этого кода. Как я могу отправить извлеченные данные в массив?
Ответ №1:
let data = this.state.data; //data from fetch request
data.forEach(item => array.push({
text: `${item.content_title | ${item.content_subtitle}`
}))
Ответ №2:
let data = this.state.data; //data from fetch request
let arr = []
data.forEach(
(item) => arr.push(item)
);
Ответ №3:
Частично проблема может заключаться в том, что ваша выборка еще не вернулась, так что this.state .данные равны нулю. Если формат данных, которые вам нужны, представляет собой массив объектов, сохраните его в state . В этом примере вы получаете свои данные выборки (и не забудьте .json(), если возвращаете JSON), обрабатываете их и сохраняете в состоянии. Кроме того, в вашем примере вы забыли $ для текстовой строки.
fetch("some url")
.then(res => res.json()) // if JSON returned
.then(json => {
const data = json.map(item => {
return {text: `${item.content_title} | ${item.content_subtitle}`};
}
this.setState({ data });
}).catch(console.error);