小编Joe*_*Joe的帖子

Redux Toolkit:在 reducer 中显示为代理/未定义的状态

解决了,谢谢!- 对于任何感兴趣的人,我试图访问 reducer 中的 state.tasks.data,但是由于范围的原因,我可以通过 state.data 访问它,因为我已经在任务切片中了。


编辑:我的变异状态错误问题现已修复,这是由于直接对状态进行排序而没有从中创建新数组。concat()之前已经解决了这个问题sort()

我的新问题是state我的removeTask reducer内部不再可访问。它现在返回未定义。如果我console.log(state)那么它将返回一个Proxy

[[Handler]]: null,
[[Target]]: null,
[[IsRevoked]]:true
Run Code Online (Sandbox Code Playgroud)

编辑 2:我发现 Proxy 是由于immer在引擎盖下对突变做了一些事情,以一种state未突变的方式使用它。我还没有解决state.tasks.data返回的问题undefined


我正在使用 react-redux 和 redux-toolkit。我只是在学习 Redux,所以我的头很炸,没有任何线索。

我从他们网站上的 redux-toolkit 基本教程中获取了一些信息,其中说您可以在 reducer 中改变状态,因为 Toolkit 在幕后做了一些事情来阻止它实际改变状态:

https://redux-toolkit.js.org/tutorials/basic-tutorial

在任何情况下,他们提供的反例都会改变状态。增量减速器返回state += 1 - 这很好用

现在我有了自己的事情,我将initial state设置为我拉入的对象数组。见下文:

tasksSlice.js

import { createSlice } from "@reduxjs/toolkit";
import data from "data/tasks_data.json";

export const tasksSlice …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs react-redux redux-toolkit

5
推荐指数
2
解决办法
3388
查看次数

为什么使用反应表单钩子在提交按钮内表单状态不会明显改变?

所以我有一个注册表单react-hook-form,我想禁用它submit input并显示“正在登录...”消息。我已经控制台记录了isSubmitting渲染中的值,并true在我提交时显示,然后false不久之后显示,但是submit button表单中的值永远不会更新以反映isSubmitting状态。

我究竟做错了什么?这是 React Hook Form useFormState 文档

从我看来它应该有效吗?

提前致谢。

import { useState } from "react"
import { useForm, useFormState } from "react-hook-form"
import useAuth from "Hooks/useAuth"

const SignInForm = () => {
  const [firebaseError, setFirebaseError] = useState(null)
  const { signIn } = useAuth()
  const {
    register,
    handleSubmit,
    resetField,
    control,
    formState: { errors },
  } = useForm()

  const { isSubmitting, isValidating } = useFormState({ …
Run Code Online (Sandbox Code Playgroud)

forms reactjs react-hooks react-hook-form

4
推荐指数
1
解决办法
3769
查看次数