RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 857342
Accepted
tym32167
tym32167
Asked:2020-07-19 02:56:11 +0000 UTC2020-07-19 02:56:11 +0000 UTC 2020-07-19 02:56:11 +0000 UTC

使用 React 构建复杂的复合形状

  • 772

我面临着使用 React-Redux 实现具有复杂表单的 SPA 的任务。由于我从未做过前端开发人员,所以我开始阅读文档,为应用程序制作了一些基本模板,然后开始实际实现表单。

应用的方案如下:顶层组件从服务端加载一个大的json对象到内存中。大 - 这意味着具有大量字段的对象。传统上,所有领域都被划分为多个部分。

每个部分都可以包含简单的输入字段和表格、开关等,包括只读字段。

最好自己生成字段及其样式,因为有企业样式和本地已编写的控件。

此外,字段可以相互依赖,字段验证可以依赖于其他字段的值,依赖字段可以来自不同的部分,等等。一般来说,一切皆有可能。

为了显示和验证字段,可以向服务器请求(例如,对于下拉数据或检查部分/字段的有效性)。

示意图如下所示:


| секция 1| набор полей 1 |
|--------:|--------------:|
| секция 2| набор полей 2 |
| секция 3| набор полей 3 |
| секция N| набор полей N |
|         |Кнопки действий|

基本上有2个问题:

一)Какой предпочтительный метод для управления состоянием формы и модели данных?

这样,原则上存在问题,但可以解决。据我了解,我有 2 个选项 - 将状态存储在存储中(存储 - 我使用 Redux),或者将状态的一部分存储在组件中,并在每次尝试完成表单编辑然后更新时收集此状态店铺。

根据我在网上和手册上的了解,每次打喷嚏都更新 STATUS 不值得做 ACTIONS,因为有很多控件可供编辑,而且我还需要将更新后的模型上传到存储库,其中有已经验证并保存在服务器上。

因此,现在,我有一个想法将每个部分划分为一个组件,为每个部分组件提供整个模型以及用于验证和更新模型的回调 + 组件应该有一个方法,允许层次结构中较高的组件了解是否正在验证视图的当前状态。

2)Какой предпочтительный способ генерации всех этих контролов на форме, добавления туда бизнес правил и правил валидации?

这更加困难。我查看了推荐的选项,redux-form,react-form,再一次react-form, react-redux-form, 不是很流行的选项等等,我无法选择,但也理解了普遍接受的构建方法复杂的级联形式。2-3 个字段的示例中的每一件事似乎都可以接受,但是当我想象我的字段数时,我明白我会淹没在事件处理程序和魔术函数中。Отсюда вопрос - есть ли общепринятый, обкатанный способ реализации подобных нужной мне форм?

javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    ThisMan
    2020-07-19T03:22:35Z2020-07-19T03:22:35Z

    您已经将表格分成了多个部分,所以就这样做吧。同样redux-form,您可以创建多个可以连接到单个组件的表单。字段本身通过 连接,您可以在其中设置Field验证

    最好自己生成字段及其样式,因为有企业样式和本地已编写的控件。

    Bredux-form Field可以将函数作为道具并渲染您的自定义组件。在那里,您可以做任何您想做的事情,不仅可以使用样式,还可以使用验证、值格式化等。

    为了显示和验证字段,可以向服务器请求(例如,对于下拉数据或检查部分/字段的有效性)。

    我们redux-form有一个设置asyncValidate,因此您可以向服务器发送请求并获取验证状态。

    但是当我想象我的字段数量时,我明白我会淹没在事件处理程序和魔术函数中

    如果你有一个复杂的更改字段的逻辑,那么无论如何你都会把它写下来,没有库会拯救你,否则实际上只是在 store( value => dispatch({value})) 中抛出值的“魔术函数”将为你做所有事情

    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5