У меня есть объект, который я получил от Firebase, и теперь мне нужно каким-то образом пройти через него oop и отобразить его. Частично проблема заключается в том, что Firebase присваивает каждой записи в схеме уникальный идентификатор, что означает, что мне нужно сделать javascript 'magi c', чтобы получить мои данные.
Вот что у меня есть, но у меня проблемы со всем ключевым (в настоящее время ниже выдает ошибку: Warning: Each child in a list should have a unique "key" prop.
). Я еще не нашел какой-либо конкретной помощи в Интернете, поэтому любая помощь приветствуется.
Данные в Firebase выглядят примерно так:
- fooData
- giberi sh случайный идентификатор
- заголовок
- дата
- текст уценки
Редактировать: Быть Ясно, что вторая часть этого вопроса - как мне извлечь данные, которые мне нужны? (название, дата, уценка). Эта map
функция кажется наиболее перспективным методом, но я не уверен, как получить дочерние элементы. В настоящее время я не получаю никакой информации (ноль). Я предполагаю, что это потому, что заголовок, дата, потомки уценки на один уровень глубже и не существуют в текущем root элементе объекта.
class Foo extends React.Component {
constructor(props) {
super(props);
this.state = {
firebase: props.firebase,
data: null
}
}
componentDidMount() {
const dataRef = firebase.database().ref('link/fooData');
dataRef.on('value', snapshot => {
this.setState({
data: snapshot.val()
});
});
}
render() {
return (
<div className="container">
{(this.state.data) ? (
<div>
{Object.keys(this.state.data).map((key) => {
return (
<Row>
<Col lg={2}><p key={key}>{this.state.data[key].title}</p></Col>
<Col lg={2}><p key={key}>{this.state.data[key].date}</p></Col>
<Col lg={8}><ReactMarkdown key={key}>{this.state.data[key].markdownText}</ReactMarkdown></Col>
</Row>
)
})}
</div>
) : null}
</div>
)
}
}