如何在React Native中使用Re-base(Firebase)构建输入表单?

时间:2017-02-07 15:23:15

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

我正在玩Firebase并对原生做出反应,发现re-base是一个有用的工具。我不是很喜欢Redux,但相信rebase会让我让我的应用程序像这样工作

Redux

我有一些关于如何设置它的设计问题。我不会放弃一些代码,因为我害怕做XY问题。

想象一下,我有以下Firebase数据库设置

{"DRAFT 1": {
  "Information A": {
    "Value 1": foo,
    "Value 2": bar,
    "Value 3": baz
  },
  "Information B": {
    "Value 1": '',
    "Value 2": '',
    "Value 3": 'hello world'
  } },
 "DRAFT 2: {
  "Information A": {
    "Value 1": '',
    "Value 2": '',
    "Value 3": ''
  },
  "Information B": {
    "Value 1": '',
    "Value 2": '',
    "Value 3": ''
  } }
}

(我不需要在键名中有空格,但会很好..)

屏幕应显示草稿,但也允许我创建新草稿(彩色边框表示组件)。

enter image description here

如果我按下其中一个蓝色按钮,Firebase ref将存储在外部蓝色组件的状态中(并作为prop传递给下一个黄色组件)。

如果我按下绿色按钮,它会将一个新密钥推送到Firebase并将其存储在(蓝色组件的)状态

一旦选择的草稿ID存储在状态(蓝色组件)中,就会显示一个新的(黄色)组件,而旧的组件会隐藏(橙色)。该ID作为prop

传递

enter image description here

InputComponents每个处于状态的JavaScript对象都可以与Firebase节点同步(从道具获取ref)。

如果Firebase中不存在该对象,则该组件会将对象推送/发布到Firebase,然后将其同步。

右上角的按钮正在查看Firebase节点(ref存储在状态中),并且一些逻辑检查是否所有字段都已填写,然后它将是可点击的...

这是一个好的设计还是有更聪明的方法(没有还原)?

0 个答案:

没有答案