хорошо, так что все знают, что отдельное отображение выполнит хитрость рендеринга компонента в методе рендеринга React, что-то вроде этого:
var listOfService = ['A', 'B', 'C', 'D', 'E'];
const listItems = listOfService.map((singleItem) =>
<a className="style_class">{singleItem}</a>
);
и если вы вызовете listItems
в результате рендеринга метод, вы получите список, и это для одного списка, но у меня есть база данных Firebase Firestore, и я хочу l oop через эту базу данных и получить каждый документ, напечатанный как компонент React, который я назвал Service, я знаю, что вы можете не используйте JSX внутри al oop или оператора if, поэтому я попробовал это:
renderServices() {
let db = firebase.firestore();
var details = [[]];
db.collection('providers').get().then(function (snapshot) {
snapshot.forEach(function (doc) {
details.push(
[
doc.data().owner_name,
doc.data().experience,
doc.data().charges,
doc.data().address,
doc.data().home_service,
doc.data().highlights,
doc.data().certifications,
doc.data().specialty,
doc.data().facility
]
);
//tried loading here Serivce, didn't work
});
})
.catch(function (error) {
console.log(error);
});
details.map((singleDetail) =>
(< Service details={singleDetail} />)
);
}
, поэтому я попробовал это, но это не работает, я написал несколько журналов консоли и данные поступают правильно. Сначала я получаю весь массив «providers
» документов, этот список провайдеров передается как «snapshot
», так что я oop через снимок с другой функцией, и эта функция принимает один документ с именем doc
и затем помещаем его в var
, называемый details
, который является массивом массивов, но! он не работает, массив не заполняется, даже если есть данные, и поэтому я не могу отобразить, есть идеи о том, как подойти к этому?