Redux 返回代理对象而不是状态

Dev*_*mar 1 javascript proxy reactjs redux react-redux

我正在尝试访问 redux 中的初始状态,并且返回了一个代理对象。我如何访问我所在州的内容?

\n

它应该返回一些大型的网格二维数组。它适用于像布尔值这样的小东西,但不适用于这个。

\n

当我直接将其记录在控制台上时,该大数组会完美返回,但是当我将该数组设置为初始状态并从那里记录它时,我会得到这个结果。

\n
Proxy {0: {\xe2\x80\xa6}}\n[[Handler]]: null\n[[Target]]: null\n[[IsRevoked]]: true\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

这是initialState

\n
const initialState = {\n  grid: initialGrid,\n  isMousePressed: false,\n};\n
Run Code Online (Sandbox Code Playgroud)\n

网格在 redux 状态下显示得很好,但我无法将其记录在控制台上。\n我从这个页面发现我需要访问该值,target所以\n我尝试过console.log(state.grid.target)列表中的其他所有内容,但它仍然不起作用。

\n

有人知道该怎么办吗?

\n

mar*_*son 8

我假设您正在使用我们的官方 Redux Toolkit 包及其createSliceAPI。

createSlice在内部使用 Immer,它将您的数据包装在代理中,以便它可以跟踪尝试的更新。

如果您想记录数据,则需要使用currentImmer 的实用程序来解包数据,如 RTK 重新导出的那样:

console.log(current(state))

请参阅https://redux-toolkit.js.org/api/other-exports#current