问题标签 [redux-store]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
272 浏览

javascript - 在 Redux React JS 中重定向后无法从存储中检索状态

我正在使用 React JS + Redux 开发一个 Web 应用程序。我是 React 的新手。我现在正在做的是尝试在一个页面上设置状态,然后在重定向后在另一个页面中检索状态。

我有一个名为 EventListComponent 的组件,它显示事件列表。在该组件内部,我更改了调用事件的 reducer 的状态。

这是我调用的 reducer 函数。

我在重定向到这样的另一个页面之前触发了这些操作。

在新页面中,我呈现名为 EditEventComponent 的组件。

这是 EditEventComponent 的定义

如您所见,在 EditEventComponent 内部,我试图检索在上一页中设置的状态的事件字段。但我无法找回它。我的问题是

  1. 重定向到新页面后(redux 商店的)状态是否重置?

  2. 我的代码有什么问题?

  3. 如果我所做的不是正确的方法,那么在 React Redux 中将对象从一个页面传递到另一个页面的最佳方法是什么?

这是我的行动

这是减速机

我也以这种方式公开 EventListComponent。

0 投票
0 回答
86 浏览

javascript - 使用 HOC 和 Redux Store 重用组件的最佳方式是什么

我正在使用 react + redux 开发一个应用程序来了解它,我怀疑以下情况的最佳解决方案是什么:

我有一个渲染 svg rect 的组件 Rectangle 和一个 RectangleControlPoints 子级。

如您所见,RectangleControlPoints 在道具上接收一些矩形坐标作为道具,进行一些计算,然后在矩形周围渲染一些点,使其能够调整大小。

计算和渲染点的矩形

计算和渲染点的矩形图片

当我使用 Redux 时,矩形的所有坐标都在 redux 存储中(不存储点坐标,我使用 memoization)。而当我拖动点时,存储中的矩形属性会发生变化,从而导致矩形的重新渲染,这很好,很棒。

现在我的应用程序正在增长,我意识到我将有许多不同类的案例,它们只会使用类 RectangleControlPoints 来呈现点以调整它的大小。但是每个人都会在商店里使用不同的地方。

我的第一个想法是创建一个 HOC 来包装 RectangleControlPoints 并使其存储连接灵活。它看起来像这样

乍一看,我认为它会起作用,HOC 将保存存储连接逻辑,而 EectangleControlPoints 将是可重用的。但是要调整三角形的大小,我需要访问Wrapped RectangleControlPoints 类中点的状态。我不知道这是否可能,但我认为如果是,那将是一种丑陋的方法。我确信有更好的方法来实现它。

简而言之,我想用不同的商店连接重用相同的元素。我认为 HOC 是一种很好的方法,但不知道最好的方法。

我希望我的解释很清楚。

0 投票
2 回答
795 浏览

reactjs - ReactJS + Redux 订阅方法一团糟

使用 create-react-app

这给我一个错误

TypeError:无法读取未定义的属性“订阅”

打扰一下?我究竟做错了什么?

0 投票
1 回答
776 浏览

reactjs - Redux Store 不获取图像文件

我在我的项目中实现了一个图像上传器。我上传的图像工作正常。然后我希望将图像保存到 redux 存储而不是本地状态。

所以我创建了我的 action 和 reducer 并发送了它。我在使用控制台检查的减速器中获取我的文件。而且我的商店也在更新,但我没有在商店中获取文件,而是得到了空对象。

减速器

行动

零件

如果您想要更多代码,请提及。

Q1 为什么状态变化没有反映任何东西?Q2 我们可以将图像存储为文件吗?

---更新日志---- 在此处输入图像描述

0 投票
4 回答
55 浏览

reactjs - 如何在redux中恢复到原来的状态?

我必须行动FETCH_REPOSFILTER_BY_LANGUAGE。当应用程序运行时,将从服务器获取存储库并加载到商店中。

然后我尝试按语言过滤

场景是,我获取 30 个存储库。假设 10 个是 JS,10 个 PHP 和 10 个 Node。

然后我过滤 JS 存储库。现在商店有 10 个 repos 而不是 20 个,所以当我尝试再次过滤我的 PHP 时,那些 repos 就消失了。

显示是再次重新获取数据还是我应该在反应道具中过滤数据?

以下是动作

fetchRepos在mount,然后FILTER_BY_LANGUAGE那种减少存储。一种预期的行为,所以我想知道我是否需要在其中运行相同的 fetchFILTER_BY_LANGUAGE或一起删除该操作并注意在道具处过滤商店?认为这些是使用 redux 的原因,对吧?

0 投票
3 回答
1147 浏览

reactjs - 如何在不使用 connect() 的情况下连接或订阅 Redux Store?

在反应应用程序中,我有一个常量文件,在其中创建了一个 HTML 字符串对象,在这些 HTML 字符串中,我必须从存储的状态中传递一些动态值store,下面是我的常量文件的结构(它是一个示例结构,实际文件有大约 18-20 个 html 字符串对象):

在上面的代码片段中,只有初始商店状态可用,但以后更新的商店状态不可用。根据文档,我们必须让组件订阅 redux 存储才能通过connect()

但是正如您所看到的,这个文件不是组件,它是为了定义常量而创建的,那么,我怎样才能订阅它来获得更新的状态呢?

0 投票
1 回答
38 浏览

javascript - setState 更改后元素未更新

我是 reactjs 的新手。

在这里,我试图在一个按钮上显示一个微调器,就像

现在,这里,

所以,当用户点击按钮时,我正在调度一个动作,然后我得到一个使用 mapStateTOProps 的道具。

但是现在,当我单击按钮时,它没有显示该微调器。

谁能帮我这个?

0 投票
0 回答
1326 浏览

javascript - 使用 create-react-app 创建的环境变量初始化 Redux 应用程序

我有一个使用 引导的非常简单的反应应用程序create-react-app,它通过 为我提供了当前环境的名称process.env.NODE_ENV,基于此,我使用特定于环境的 URL 初始化我的 Redux 存储。

我的店铺长这样

development.js我在文件中的环境特定值:

production.js同样在文件中写入生产 URL :

这似乎工作 在此处输入图像描述

我在初始化阶段获得了特定于环境的 url。我的怀疑是关于这个过程。在这里,我正在导入所有 env 文件。根据条件仅使用一个导入,其他将被丢弃。

这是一种有效的方法吗?我还能做些什么来改进这个片段?

0 投票
2 回答
930 浏览

reactjs - 如何使用父组件的redux store

我正在创建一个组件(-子),例如npm package(-另一个项目)。该组件将在另一个组件(-父级)中使用(将像 一样安装npm i child)。

所以,我的问题是我想在孩子中使用 redux 存储架构。在 parent 中,有一个太 redux 的 store 架构。在一个孩子,我不想使用自己的商店我想使用父组件的商店。我怎样才能做到这一点?如何在我的孩子中使用父组件的存储?

有可能的?我不知道该怎么做。

感谢您的任何帮助。

0 投票
1 回答
40 浏览

angular - Angular - 通过输出发出事件不会刷新列表

我用 angular 7 和 @angular-redux/store 9 编写了一个应用程序。这个应用程序有两个包含英雄对象的列表。每个对象都有一个布尔标记。第一个列表将对象显示为“真”标记。另一个列表显示标有“假”的对象。如果我在第一个列表中按下一个英雄对象(标记为 false),这些对象被标记为 true,从第一个列表中删除并显示在第二个列表中。

我通过使用改变标志的商店来实现这一点。第一个组件接收列表(通过选择)并通过 Input() 将其进一步提供给两个列表组件。点击事件使用了输出参数。

我的问题:没有可见的变化。谢谢你的帮助。

解决方案:
我可以解决问题。我在父组件中使用了 ngDoCheck 并将其进一步提供给子组件。