如何将用户文本输入数据存储到react native中的对象数组中?

时间:2017-03-13 21:36:53

标签: javascript reactjs react-native asyncstorage

有没有人知道如何将用户文本输入数据存储到React Native中的对象数组中?

[
  {
    note: ‘some note’,
    created_at: 123456789
  },
  {
    note: ‘another observation note’,
    created_at: 123456789
  }
]

我目前只使用基本的Asyncstorage。我有一个文本输入字段供用户输入注释。它目前将其保存为数组中的字符串。我想知道如何使用一组对象来做到这一点。另外,我如何添加created_at时间戳?

谢谢: - )

1 个答案:

答案 0 :(得分:1)

听起来更像是一个基本的JavaScript问题。在React的上下文中,您只需将笔记列表存储在组件状态(或应用程序状态,如果使用Redux之类的东西)。

为文本输入定义onChange事件处理函数,并使用以下命令调用setState

onSomeInputChange = (text) => {
  const note = {
    note: text,
    created_at: Date.now()
  };
  this.setState({ notes: [ ...this.state.notes, note ] });
}

以上假设您拥有状态变量 notes ,其中包含一系列注释对象。使用点差运算符,您可以将所有以前的音符复制到新数组,然后添加新音符。你必须这样做,因为状态是不可变的,不能直接修改。

然后将该函数传递给文本输入组件的onChange:

<TextInput ... onChange={this.onSomeInputchange} />

其他道具已被省略。