无法从已同步到Firebase的状态中删除-ReactJS

时间:2018-07-14 18:23:01

标签: javascript reactjs firebase react-native firebase-realtime-database

我在从同步到Firebase的状态中删除时遇到问题。我认为问题出在我的删除功能上。

这是我将状态同步到Firebase的方式

private async Task AddDefaultTasks(Item project)
{
    await this.AddChildAsync(project, "Task A", Enums.ItemTypes.Task);
    await this.AddChildAsync(project, "Task B", Enums.ItemTypes.Task);
    await this.AddChildAsync(project, "Task C", Enums.ItemTypes.Task);
}

private async Task<Item> AddChildAsync(Item parent, string name, Enums.ItemTypes itemType)
{
    return await this.NewAsync(new Item() { Name = name, ParentId = parent.Id, ItemTypeId = (int)itemType });
}

public async Task<Item> NewAsync(Item item)
{
    item.OwnedById = this._applicationUserProvider.CurrentAppUserId;
    item.InsertedBy = item.OwnedById;
    item.UpdatedBy = item.InsertedBy;
    item.EntityStatusId = (int)Enums.EntityStatus.Active;
    DbContext.Items.Add(item);
    await this.SaveChangesAsync();
    return item;
}

我的删除功能如下

componentDidMount() {
  base.syncState("recipes", {
    context: this,
    state: "recipes"
  });
   this.loadSampleData();
}

它在没有Firebase的情况下也可以工作,但是当我将状态同步到Firebase时,它就停止了工作。

如何使其与Firebase一起使用?

1 个答案:

答案 0 :(得分:0)

我只是像这样更改了deleteRecipe函数,它开始起作用:

deleteRecipe(index) {
   const recipes = { ...this.state.recipes };
   recipes[index] = null;
   this.setState({ recipes: recipes });
}