代码之家  ›  专栏  ›  技术社区  ›  Lazar Ljubenović

动作名称是redux形式的公共API的一部分吗?

  •  0
  • Lazar Ljubenović  · 技术社区  · 6 年前

    首先,我不完全确定 @@

    以防这只是一个范围约定 @@<package>/<action> ,那么我有一个关于 redux-form 包裹。显然,行动是, not documented ,所以我 我不确定我是否能安全地用它们 异径管 不必担心破坏变化。

    redux格式 分派类型为的操作 @@redux-form/SET_SUBMIT_SUCCEEDED meta.form 告诉我那是我命名的表格 register . 所以我会用在我的生活中 RegisterPage 设置布尔值 isSuccess 用它来改变视角。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Johannes Reuter    6 年前

    如果他们没有明确的文件,我会认为他们是私人的,而不是直接使用它们。尽管没有官方声明 @@ @@redux/INIT_{random string} 操作(有关命名的讨论可在以下内容中找到 github thread ):

    在新的文件(#140)中,我们应该澄清,任何行动的前缀 与@一起使用时不应处理。例如,你不应该尝试 处理@@INIT。

    redux code itself 私密性也明确规定:

    /**
     * These are private action types reserved by Redux.
     * For any unknown actions, you must return the current state.
     * If the current state is undefined, you must return the initial state.
     * Do not reference these action types directly in your code.
     */
    

    对于您的具体问题:您可以提供 onSubmitSuccess function 到HOC并分派您自己的操作来更新您自己的reducer,或者您可以直接依赖redux表单状态并通过 hasSubmitSucceeded selector . 我个人认为第二个选项更好,因为它不会在存储中引入冗余状态—redux表单已经存储了表单是否成功提交的信息,在另一个子缩减器中自行执行此操作可能会导致两个布尔值无意中发生分歧。