У меня есть код вроде этого Model.js
import firebase from '../config/Firebase'
class Dashboard {
GetAllBlog() {
return firebase.collection('blogs').get()
}
}
export default new Dashboard()
Затем я возвращаю модель в home.js
import React from 'react';
import Index from './components/index'
import CardOverview from './components/CardOverview'
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import Container from '@material-ui/core/Container'
import Paper from '@material-ui/core/Paper'
import Grid from '@material-ui/core/Grid'
import Typography from '@material-ui/core/Typography';
import DashboardService from '../services/dashboard'
const styles = theme => ({
root: {
padding: theme.spacing(3, 2),
},
row: {
padding: theme.spacing(3, 2),
}
});
class Home extends React.Component {
state = {
blogs: []
}
componentDidMount() {
DashboardService.GetAllBlog()
.then(snapshot => {
this.setState({
blogs: snapshot
})
})
.catch(err => {
console.log('Error getting documents', err);
});
}
render() {
const { classes } = this.props
const {
blogs
} = this.state
blogs.forEach(element => {
console.log("blogs", element.data().title)
});
return (
.......
Но я получил Double при использовании foreach, как это
На самом деле у меня есть такие данные (два данных)
Я смотрю, как сделать это простым с помощью Convert All snapshot to Array (я могу создать объединенный массив из firebase), но я запутался, почему этот двойной цикл, но он повторяется 2 раза, но за один раз, его цикл основан на длине
0
Fajrul A
18 Апр 2020 в 19:39
1 ответ
Лучший ответ
Это потому, что состояние было изменено 2 раза, тогда рендеринг будет выполняться каждый раз, когда вы меняете состояние
1
Lucas Matos
18 Апр 2020 в 16:51
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.