Reactjs 状态在redux开发工具中显示为空对象

Reactjs 状态在redux开发工具中显示为空对象,reactjs,react-redux,Reactjs,React Redux,我有点犹豫是否要问这些问题,因为我不知道应该分享哪些细节来帮助获得答案。问题是: 应用程序运行良好。所有数据都处于状态,因为我可以在控制台中打印出来,并在React应用程序中使用。但是,如下图所示,react dev tools中显示的状态为“空对象”。这与Chrome和Firefox扩展以及独立版本的react-dev工具相同。这适用于组件树的每一层 该应用程序是使用create React app与通过客户端代理的自定义express服务器进行响应的。正在开发中运行。数据来自MongoDB

我有点犹豫是否要问这些问题,因为我不知道应该分享哪些细节来帮助获得答案。问题是:

应用程序运行良好。所有数据都处于状态,因为我可以在控制台中打印出来,并在React应用程序中使用。但是,如下图所示,react dev tools中显示的状态为“空对象”。这与Chrome和Firefox扩展以及独立版本的react-dev工具相同。这适用于组件树的每一层

该应用程序是使用create React app与通过客户端代理的自定义express服务器进行响应的。正在开发中运行。数据来自MongoDB

我对调试的想法 1尝试不同版本的相关npm软件包 2创建一个精简版/简化版的应用程序,以查看问题是否存在,如果没有,请重新构建以查看问题的引入位置


我显然不想做2,所以我希望有人能提出问题所在。

每个React组件都有自己的内部状态,您可以通过this.state.yourPropertyName进行访问,并通过this.setState进行设置{yourPropertyName:'someValue'}。此状态是React的一部分。如果要以React组件的状态传递数据,则必须将其作为道具传递给其子组件

Redux是独立于React的独立库。Redux使用全局状态帮助您管理应用程序的状态,任何react组件都可以使用ConnectMapStateTopsMyComponent访问该全局状态。当您连接一个组件时,它会创建一个wrapper-React组件,就像您选择的组件一样,它负责连接到Redux存储并作为道具传递给您的组件。这就是您从组件访问Redux状态作为this.props.myProperty的原因

您正在查看的Chrome扩展是React devtools。那里的状态部分指的是React的内部状态。如果选择组件,可能会在props部分下看到Redux存储区中的数据


如果要查看Redux状态,可以使用React开发工具或从中选择组件,并在控制台中键入$r.store.getState。

开发工具中的状态是所选组件的内部状态,而不是Redux状态。请尝试具有内部状态的组件。@TharakaWijebandara,谢谢您的评论。“内部状态”是指组件的构造函数中有this.state={…}吗?如果是这样,我正在看《开发Redux Edge》一书中的一个示例应用程序。它根本不使用this.state={…},但您仍然可以在dev tools.Yes中看到状态。我不知道为什么。但我检查了我的一个react/redux应用程序,它也有同样的行为。顺便说一句,我使用的是react-devtools,不确定您指的是与redux-dev工具相同的东西。@TharakaWijebandara,我指的是“react-devtools”浏览器扩展以及独立的react-devtools应用程序。两者的行为是相同的。