如何在从其他视图(类)按下导航栏提交按钮时获取表单数据

how to get form data when pressing on navigation bar submit button from a different view (class)

本文关键字:提交 导航 按钮 数据 表单 获取 其他 视图      更新时间:2023-09-26

嗨,我是 React Native 的新手,所以我可能错过了一些关于如何正确做事的技巧。抱歉,如果标题中的问题有点模糊。让我用一个例子来解释:

我有一个名为root的文件.js它导航(使用导航器(到一个名为signupform的新视图.js该视图在导航栏上包含一个"提交"按钮。请注意,导航栏是在目录上创建的.js并且独立于注册表单.js

(我想知道如何做到这一点(比如说,当用户填写完注册表单中的所有字段时,他们可以单击导航栏中的"提交"按钮,该按钮应该触发导航器.push,其中包含表单数据的传递道具到视图说processdata.js。但是,我不知道如何将数据传递到processdata.js视图,因为导航栏"提交"按钮不是注册表单.js视图的一部分。

(我可以这样做。但我更喜欢上面的场景(一个简单的解决方案是在与注册表单相同的视图中有一个"提交"按钮.js而不是导航栏的一部分。这样,当用户从同一视图中单击"提交"按钮时,我可以轻松地获取数据并执行 navigator.push((。

任何帮助将不胜感激。抱歉,如果我的例子仍然不清楚。

我不确定这是否非常优雅,但一种方法是将"isSaving"值保持在根状态。此值作为道具传递给注册表单。

以您实现的形式

componentWillReceiveProps: function(nextProps) {
    if(nextPorps.isSaving && ! this.props.isSaving) {
        ... do something ...
    }
}

做的事情在很大程度上取决于您的架构。以下是三个选项:

  1. 您可以直接在表单中执行HTTP调用。在这种情况下,您需要将回调传递给 root,以便在网络调用返回后更新那里的状态。
  2. 您可以在根目录中处理 HTTP 调用。在这种情况下,您需要向接收表单数据的根提交回调。
  3. 如果您使用某种类似 Flux 的实现,则会使用表单数据触发操作

我希望这有所帮助。