【问题标题】:How to get and display all child list from Firebase React如何从 Firebase React 获取和显示所有子列表
【发布时间】:2017-12-13 14:09:39
【问题描述】:

我正在尝试通过获取用户帖子来执行“博客帖子”之类的操作,将其推送到 Firebase,然后将其重新显示在元素上。 这是我的代码的一部分

constructor(props){
    super(props);
    this.state = {
        title: '',
        story: '',
        date: ''
    };
}

componentDidMount(){
    const rootRef = firebase.database().ref();
    const post = rootRef.child('post').orderByKey();


   post.once('value', snap => {
       snap.forEach(child => {
           this.setState({
               date: child.key,
               title: child.val().title,
               story: child.val().story
           })
       });
   });

}

在渲染()上

<div className="post">
      <h3>{this.state.date}</h3>
      <h2>{this.state.title}</h2>
      <p>{this.state.story}</p>
</div>

在 Firebase 数据库上

得到这个结果

那么我应该怎么做才能像结果模式一样显示元素并且可以显示所有数据列表。

【问题讨论】:

    标签: javascript reactjs firebase web-applications firebase-realtime-database


    【解决方案1】:

    我这样做得到了正确的结果

    constructor(props){
    super(props);
    this.state = {
            title: [],
            story: [],
            date: [],
            post: '',
        };
    };}
    
    componentDidMount(){
    const rootRef = firebase.database().ref();
    const post = rootRef.child('post').orderByKey();
    
         post.once('value', snap => {
           snap.forEach(child => {
               this.setState({
                   date: this.state.date.concat([child.key]),
                   title: this.state.title.concat([child.val().title]),
                   story: this.state.story.concat([child.val().story])
               });
    
               const postList = this.state.date.map((dataList, index) =>
                    <p>
                        {dataList}
                        <br />
                        {this.state.title[index]}
                        <br />
                        {this.state.story[index]}
                        <hr />
                    </p>
    
                );
    
                this.setState({
                    post: postList
                });
           });
       }); }
    

    在渲染()上

    <div className="diary">
    
      <ul>{this.state.post}</ul>
    
    </div>
    

    结果。

    【讨论】:

    • 这是从 Firebase 数据库呈现内容的传统方式吗?我是 reactjs 和 firebase 的新手,但这对我最有帮助,但似乎也很复杂......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2019-04-25
    相关资源
    最近更新 更多