【问题标题】:show firebase data in react-native app在 react-native 应用程序中显示 firebase 数据
【发布时间】:2018-05-05 07:03:15
【问题描述】:

我正在尝试在 react-native 上构建我的第一个应用程序。但是我有问题,我想显示我的来自 firebase 的数据,并且当我重新加载应用程序时,插入到 firebase 的数据不会被删除。这就是我在渲染中所拥有的:

 let tags = this.state.tagArray.map((val, key) => {
  return <TagContainer key={key} keyval={key} val={val}
    deleteMethod={() => this.deleteTag(key)} />
});

这是我的 firebase 配置:

this.itemRef=this.getRef().child('tags');
getRef(){
  return firebaseApp.database().ref();
}

getItems(itemRef){
  itemRef.on('value',(snap)=>{
    let items=[];
    snap.forEach((child) => {
      items.push({
        title:child.val().title,
        _key:child.key
      });   
    });
 Array.prototype.push.apply(this.state.tagArray, items);
  this.setState({ tagArray: this.state.tagArray })
  });

这是我设置 tagArray 的 addtag 函数:

addTag() {
  if (this.state.tagText) {
    this.state.tagArray.push({
      'tag': this.state.tagText
    });
    this.setState({ tagArray: this.state.tagArray })
    this.setState({ tagText: '' })
    this.itemRef.push({title:this.state.tagText});
  }
}

【问题讨论】:

  • 如何设置this.state.tagArray
  • addTag() { if (this.state.tagText) { this.state.tagArray.push({ 'tag': this.state.tagText }); this.setState({ tagArray: this.state.tagArray }) this.setState({ tagText: '' }) this.itemRef.push({title:this.state.tagText}); } }
  • 请编辑您的问题并在此处添加相关代码。
  • 当然,我编辑了我的问题。
  • 你什么时候运行这个addTag函数?

标签: javascript android firebase react-native


【解决方案1】:

您不应该将数据推送到状态对象中。如果不使用 setState(),则不允许更改状态。

addTag() {
  if (this.state.tagText) {

      let tagArray = [...this.state.tagArray,{'tag': this.state.tagText}]
      this.setState({ tagArray: tagArray,tagText: '' }, ()=>{
          this.itemRef.push({title:this.state.tagText});
      })
  }
}

【讨论】:

  • 我更改了我的 getItems 函数,请再次检查。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-21
相关资源
最近更新 更多