我正在使用 Redux。我应该管理 Redux 存储中的受控输入状态还是在组件级别使用 setState?

2024-02-02

我一直在试图找出管理我的反应表单的最佳方法。我尝试使用 onChange 来触发操作并使用表单数据更新我的 redux 存储。我还尝试创建本地状态,当提交表单时,我触发并执行操作并更新 redux 存储。

我应该如何管理我的受控输入状态?


我喜欢 Redux 合著者之一的这个回答:https://github.com/reactjs/redux/issues/1287 https://github.com/reactjs/redux/issues/1287

使用 React 来实现对全局应用程序无关紧要的短暂状态 并且不会以复杂的方式发生突变。例如,某些 UI 中的切换 元素,表单输入状态。使用 Redux 来处理全局重要的状态 或者以复杂的方式发生突变。例如,缓存的用户或帖子 草稿。

有时你会想从 Redux 状态转移到 React 状态(当 在 Redux 中存储一些东西会变得很尴尬)或相反(当 更多组件需要访问过去的某些状态 当地的)。

经验法则是:做不那么尴尬的事情。

也就是说,如果您确定您的表单不会影响全局状态或需要在组件卸载后保留,那么请保持反应状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我正在使用 Redux。我应该管理 Redux 存储中的受控输入状态还是在组件级别使用 setState? 的相关文章

随机推荐

  • Spring boot CrudRepo 定义一个bean

    我在 Spring Boot 中遇到有关存储库的问题 我有一项服务 Service userService public class UserServiceImpl implements UserService Autowired priv
  • YouTube 嵌入:不安全的 JavaScript 尝试访问框架

    我们有一个 Wicket 应用程序 其页面包含嵌入的 Youtube 视频 视频嵌入并播放得很好 但显然它导致页面的其余部分无法渲染 似乎 DOM 元素来了after尽管嵌入在标记中 但嵌入根本不会显示在页面上 查看 Chrome 中的错误
  • 如何使用窗口标题启动powershell?

    我有一个批处理文件 允许我根据我的输入转到特定文件夹 d cd d test bits ECHO off cls start ECHO ECHO 1 Perl ECHO 2 Python set choice set p choice ty
  • Firebase 从 vagrant localhost:5000 提供服务

    我在 mac os high Sierra 上运行 vagrant ubuntu 16 04 我已将端口转发和符号链接设置为awesome local com 基本的node js Web应用程序运行完美 可以在指向awesome loca
  • 如何从 IntelliJ 中删除通过 pom.xml 添加的依赖项?

    我将 Spring Security 添加到 pom xml 和 IntelliJ IDEA 中的依赖项中 然后下载它 我检查了 http localhost 8080 并重定向到 http localhost 8080 login 我现在
  • Java支付网关库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找类似于 Rails active merchant 的 Java 支付网关库或许多其他平台上可
  • Node.js 续集关联,包含条件

    是否可以在 findAll 查询的包含数组中传递条件 例如 我有 UsersModel PostsModel 和 UserVotesModel 用户可以对帖子进行投票 对于登录用户 我想查询帖子并仅包含当前用户的投票 我无法使用 Seque
  • 在Notepad++中选择换行符

    我注意到 当我加载文本文件时 Notepad 将识别并使用该文件中的任何换行符 n or r n 是否有一些选项可以让我选择默认情况下用于新文档的选项 我查看了帮助并用谷歌搜索 但找不到任何东西 对于任何新文档 Settings gt Pr
  • 如何用MySQL生成随机字符并插入? [复制]

    这个问题在这里已经有答案了 复制 向 MYSQL 数据库插入随机字符 https stackoverflow com questions 2498310 inserting random characters to mysql databa
  • Django Apache/mod_python 管理 CSS 未与管理表一起出现

    我的 Windows XP Django apache mod python 在本地主机上运行 除了管理 CSS 不渲染之外 所有部分都正常工作 管理员可以工作 但没有 html 格式 我做了补充 settings py INSTALLED
  • 字符串内容相同,但 equals 方法返回 false

    我正在使用 StringEscapeUtils 来转义和取消转义 html 我有以下代码 import org apache commons lang StringEscapeUtils public class EscapeUtils p
  • 如何将二进制数据“按原样”写入注册表(即:我仅将可见的二进制数据作为来自注册表编辑器的字符串)

    我一直在谷歌上搜索这个问题 一整天都没有找到可行的解决方案 我对二进制数据类型一无所知 因为我从来没有故意使用过它们 并且我正在尝试将我在注册表中看到的二进制值写入注册表 现在 我看到的只是以下内容 如下所示 如果我尝试将其作为字符串传递给
  • 如何合并二进制文件?

    我的my branch中有一个二进制文件 当我需要对其进行更改时 git当然不会合并它 所以我现在做的是 git checkout my branch make a change to gui bin mv gui bin git comm
  • k3d 尝试拉取 Docker 镜像而不是使用本地镜像

    只需在本地机器 Linux Mint 20 2 上研究K8S的核心即可 使用以下命令在本地创建一个节点集群 k3d集群创建mycluster 现在我想在容器中运行 spring boot 应用程序 我构建本地图像 库 0 1 0 这是摘自D
  • 如何摆脱 jQuery 数据表插件的分页?

    我怎样才能删除分页 and showjQuery 的特点数据表 http datatables net 我只想要它的搜索和排序功能 并想摆脱其他功能 有什么办法吗 如果你不使用 jQuery UI 主题 你可以这样做 document re
  • 如何删除Android Room数据库的文件?

    我已经实现了一个房间数据库 它是从资源文件中分发的SQLite资产助手 https github com jgilfelt android sqlite asset helper第一次启动应用程序时 数据库包含游戏状态数据 因此如果玩家想要
  • 如何生成字母表数组?

    在 Ruby 中我可以做 a z to a to get a b c d z JavaScript 是否提供类似的构造 我个人认为最好的是 alphabet abcdefghijklmnopqrstuvwxyz split 简洁 有效 易读
  • 在 Java 中转换字符

    我正在学习Java 我发现表达式通常必须转换为某种类型才能正确执行 例如 在算术计算期间 字节被提升为整数 因此以下表达式将引发错误 byte b 10 int i i b b ok assigning an integer evaluat
  • 核心文本 - 从 NSRange 获取像素坐标

    我怎样才能得到一个CGRect从一个NSRange对于使用 Core Text 渲染的文本 我正在使用核心文本NSAttributedString 这是绝对的痛苦 但可以做到 您需要使用以下命令获取框架中的所有线条CTFrameGetLin
  • 我正在使用 Redux。我应该管理 Redux 存储中的受控输入状态还是在组件级别使用 setState?

    我一直在试图找出管理我的反应表单的最佳方法 我尝试使用 onChange 来触发操作并使用表单数据更新我的 redux 存储 我还尝试创建本地状态 当提交表单时 我触发并执行操作并更新 redux 存储 我应该如何管理我的受控输入状态 我喜