将数据从FiRestore提取到包含2个数组(值和数量)的文档中的表

wyyhbhjk  于 2022-10-02  发布在  Java
关注(0)|答案(1)|浏览(126)

我得到了一个FiRestore集合,其中同时包括2个文档(可能更多)。每个文档都有2个数组(数量和值),如下面的最后一个截图所示。

我希望获得所有数据,并在每次使用文档数组中的数据创建行时如下所示:

  • 但我得到的却是这个:*

  • FiRestore:*

  • 代码:*
export default class NutritionTableOfTheUser extends Component {
constructor() {
    super();
    this.state = {
        tableData: []
    }
}

componentDidMount() {
    const dbRef = collection(db, 'data');
    onSnapshot(dbRef, (querySnapshot) => {
        let foods = [];
        querySnapshot.forEach(doc => {
            foods.push(doc.data())
        });
        this.setState({ tableData: foods })
    })
}

render() {
    return (
        <div className='container mt-3'>
            {/* table */}
            <table className='table table-hover'>
                <thead>
                    <tr>
                        <th>#</th>
                        <th>Food</th>
                        <th>Quantity</th>
                    </tr>
                </thead>

                <tbody>
                    {this.state.tableData.map((row, index) => {
                        return (
                            <tr>
                                <td>{index + 1}</td>
                                <td>{row.value}</td>
                                <td>{row.quantity}</td>
                            </tr>
                        )
                    })}
                </tbody>
            </table>
        </div>
    )
}

}

kqlmhetl

kqlmhetl1#

试试看

onSnapshot(dbRef, (querySnapshot) => {
        let foods = [];
        querySnapshot.forEach(doc => {
            const {value, quantity} = doc.data()
            for(let i = 0; i < value.length; i++) {
              foods.push({value: value[i], quantity:quantity[i]})
            }
        });
        this.setState({ tableData: foods })
})

相关问题