#reactjs #react-native
Вопрос:
Я получаю ошибку (КАК я ПРОКОММЕНТИРОВАЛ СТРОКУ, ВЫЗЫВАЮЩУЮ ОШИБКУ В КОДЕ ) в следующем коде, поскольку я на этапе обучения reactjs, эта ошибка не имеет для меня никакого смысла. Требуется руководство
componentDidMount() {
let rooms = this.formatData(items);
console.log(rooms);
}
formatData(items) {
let tempItems = items.map((item) => {
let id = item.sys.id;
let images = item.fields.images.map((image) => {
image.fields.file.url; // error is on this line
}); // The error suggest that its
// expecting an assignment or function
// but instead got an expression???
let room = { ...this.fields, images, id };
return room;
});
return tempItems;
}
render() {
return (
<>
<RoomContext.Provider value={{ ...this.state }}>
{this.props.children}
</RoomContext.Provider>
</>
);
}
}
Комментарии:
1. Я подозреваю
items
, что в этой строке не определеноlet rooms = this.formatData(items);
2. что
images
содержит?3. Он определяется как импорт элементов из «./данные».;
4. изображения: [ { поля: { файл: { url: img4 } } } Это. это данные, которые я получаю, и они определены локально
5. поэтому , если вы хотите вернуть URL-адрес в качестве объекта в массив изображений, используйте это
({ image.fields.file.url })
, или если просто массив URL-адресов не является объектом, просто возвращаемый URLimage.fields.file.url
-адрес не переносится{}
, если вы вводите,{}
то используйте ключевое слово return, например{ return image.fields.file.url; }
Ответ №1:
В настоящее время функция стрелки ( (image) => { ... }
), которую вы приводите в качестве аргумента map
, ничего не возвращает. Выражения функций со стрелками требуют либо выражения, либо тела функции в правой части стрелки. То, что вы написали, является телом функции без оператора return и, следовательно (image) => { ... }
, возвращается undefined
по умолчанию. Вы можете либо написать выражение image.fields.file.url
как есть справа от стрелки (сделав правую сторону выражением вместо тела функции), либо добавить оператор return в тело.
То есть изменить
let images = item.fields.images.map((image) => {
image.fields.file.url;
});
либо к
let images = item.fields.images.map((image) =>
image.fields.file.url
);
или
let images = item.fields.images.map((image) => {
return image.fields.file.url
});
Комментарии:
1. тай за помощь ^^