如何在视图中显示数组? React JS

时间:2019-12-05 12:37:15

标签: javascript node.js reactjs firebase firebase-realtime-database

我从Firebase取得并有效存储的排列的值有效,但是问题是当我在视图中使用.map函数显示它们时,什么也看不到。我在做什么错了?

class Home extends Component{

state={
    products : []
  }

constructor(){
    super();
    this.obtenerProductos = this.obtenerProductos.bind(this);
}

componentDidMount(){
    this.obtenerProductos()
  }

obtenerProductos(){
    const referencia = firebase.database().ref().child('products').orderByKey();
    let products = []
    referencia.once('value', snap => {
    snap.forEach(child => {

        var productElement = {
            id:          child.key, 
            name:        child.val().name, 
            price:       child.val().price,
            image:       child.val().image,
            category:    child.val().category,
            description: child.val().description
        };

        //this.products.push(productElement);
        products.push(productElement);
       });
    });

    this.setState({
        products
    })
}

在渲染功能中,我想显示产品名称,但对我来说什么也没有。我不明白。

render(){
console.log(this.state.products);
return( 
<Fragment>
<ul>
    <h1>Text</h1>
    {this.state.products.map((item, index) => {
        return <h1 key={index}>{item.name}</h1>
    })
    }
</ul>
</Fragment>
);}}

在console.log的render函数中,我打印以下内容,一个空白,另一个带有从firebase带来的数据。

image

0 个答案:

没有答案