我目前正在尝试使用Firebase作为数据库来学习React和next.js。我的组件中有一个函数,但由于某种原因它没有被调用(即我正在尝试做console.logs()但它们不起作用,所以我假设未调用该函数)。

这是我的代码,它尝试从firebase中获取数据,然后将其显示在渲染的组件中:

import React from 'react'
import {loadFirebase} from '../lib/db.js'
import { render } from 'react-dom'

export default class Item_Farm extends React.Component{

static async getInititalProps() {
    console.log("hallo")
    let firebase = loadFirebase()
    let result = await new Promise((resolve, reject) => {
        firebase.firestore().collection('farms')
        .limit(10)
        .get()
        .then(snapshot => {
            let data = []
            console.log(snapshot)
            snapshot.forEach((doc) => {
                data.push(
                    Object.assign({
                        id: doc.id
                    }, doc.data())
                )
            })
            resolve(data)
        })

        .catch(error => {
            reject([])
        })
    })
    return {farms: result}
}
render(){
    const farms = this.props.farms
    return(

    <div id="farms">
        {(farms && farms.length > 0)}
        <ul>
                {farms.map(farm => <li key="{farm.id}"><h1>{farm.name}</h1></li> )}
        </ul>

        <style jsx>{`
      div {
        background-color:  blue;
      }
    `}</style>

    </div>)

    }
}

最佳答案

我认为函数名称中有拼写错误。它应该是

getInitialProps


有关更多信息,请检查fetch data next.js

关于javascript - React不执行组件中的功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59599931/

10-09 20:58