问题标签 [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 回答
54 浏览

reactjs - 迭代地创建新组件。如何将每个新组件添加到 redux 商店?

我通过数据库输入(数据)迭代生成卡组件。我试图弄清楚如何正确地为每张卡映射StatetoPropsmapDispatchtoProps。目前,我的addCard操作导致 TypeError,因为它表示addCard操作未定义。

我的 Reducer 组件有一个 initialState,其中包含一个卡片数组,我试图在其中放置所有这些卡片。

可能有一个我只是缺少的解决方案,但我会很感激任何建议。

我的 addCard 方法可能写错了,或者我的 mapStatetoProps return{} 不正确。

0 投票
3 回答
783 浏览

javascript - 如何在reducer的数组索引处添加对象

我有存储数组(store.calendar[0].todos[{title: title, etc...}]

我需要将 action 对象添加到数组的索引 todos 中:我尝试过使用这个 reducer,但出现错误:

state.calendar[newTodo.day].concat 不是函数

我的减速机:

我的行动:

我的添加待办事项功能:

0 投票
1 回答
104 浏览

react-native - 在 react-native-debugger 中配置 redux 存储的初始状态?

是否可以在 react-native-debugger中配置 redux 存储的初始状态?

我想把它指向我磁盘上的 JSON 文件或类似的东西。

这将允许将用户旅程中的任意位置作为我的起点,这需要 redux 存储的复杂状态已经存在。

0 投票
2 回答
5081 浏览

angular - ngrx 商店选择仅订阅特定操作

我想知道是否可以按操作过滤 store.select 订阅(就像我们在效果中所做的那样)。请看下面的代码:

每次调度一个动作(无论哪个动作)时,每个具有 store.select.subscribe 的活动组件(未销毁且未取消订阅)都会被调用。

如果我们的应用程序有 100 个动作,则每次触发 1 个动作时,都会调用所有活动组件(未销毁或取消订阅)store.select.subscribe。(如果影响组件的状态没有改变,我知道我们不会有任何问题,因为状态仍然相同)。

我为什么要问这个问题?

有时,每当影响组件的状态发生变化时,我都需要在组件中执行一些操作。所以,每次我需要做一个 if 语句来检查对象是否已经改变。如果我有操作过滤器,则不再需要此 if 语句,因为我过滤了影响我的组件的特定操作的订阅。请参阅下面显示此 if 语句的代码:

我的想法是有道理的,还是我误解了ngrx的概念?我应该为此使用其他类似效果的东西吗?

提前致谢。

0 投票
1 回答
263 浏览

javascript - 如何解决与 redux store 相关的“Invariant Violation”错误?

我正在尝试进行 DOM 测试,以检查单击按钮时是否打开了对话框。然后我得到了这个错误

不变违规:在>“连接(照片)”的上下文或道具中找不到“商店”。要么将根组件包装在 a 中,要么 > 明确地将“store”作为道具传递给“Connect(Photos)”。

我使用了 jest,并且我的组件使用连接到 redux 商店

导出默认连接(mapToProps)(照片);

配饰Photos.js

附件Photos.test.js

这就是我得到的结果。

不变违规:在>“连接(照片)”的上下文或道具中找不到“商店”。要么将根组件包装在 a 中,要么 > 明确地将“store”作为道具传递给“Connect(Photos)”.strong 文本

0 投票
7 回答
7990 浏览

node.js - React Redux - 将多个商店增强器传递给 createStore() 时出错

我有一个运行 redux 和 thunk 的反应应用程序,它一直运行良好。我需要在页面重新加载时保持存储状态,以免数据丢失,因此创建了一个函数,将数据存储在本地存储中,然后返回准备添加到 createStore 的数据(https://stackoverflow.com/a/ 45857898/801861)。数据存储工作正常并返回准备好设置状态的对象。在 createStore 添加数据对象时,react 无法编译并出现此错误:

错误:您似乎将几个商店增强器传递给 createStore()。这是不支持的。相反,将它们组合成一个函数

这是当前代码返回错误:

我正在运行的原始代码:

我试图在网上找到一些类似的问题后解决这个问题,编译但破坏了最初工作正常的站点代码:

不知道我需要改变什么才能让它工作,任何帮助表示赞赏。

0 投票
2 回答
71 浏览

reactjs - 如何清理你的商店

在发布之前,我试图在这篇文章中阅读 Dan Abramov 的超级答案

我的代码有一个小问题,我很乐意理解我的错误:

1)这是我的索引文件

我试图添加这个:

这是文件的树,

在此处输入图像描述

问题是我收到错误“你达到了最大调用堆栈大小”

我究竟做错了什么 ?我不知道这是否是问题,但我们正在使用 Immutable.js

更新

这是收到的错误 在此处输入图像描述

这是现在的索引文件

0 投票
0 回答
30 浏览

reactjs - subscribe() 没有功能,不能 getState()

我想订阅状态更改并在需要时重新渲染组件(状态更改) 渲染 2 个组件。我进行更新的地方(产品列表)和显示所选项目更新列表的地方(产品购物车)

我无法从购物车中获取状态

这是购物车组件- 我希望订阅商店 c 并在状态更改时重新呈现(不工作)

这是 HotelDetails 组件 - 我在其中选择要预订的日期、夜晚

店铺

行动

减速机

这是该网站的演示

https://media.giphy.com/media/gLKPh0cxXepCVDB3NH/giphy.gif

0 投票
1 回答
30 浏览

typescript - 如何验证 Foo 类型仅包含 Bar 类型的属性子集?

我有一个接口 AppState,我希望能够针对这个主 appstate 接口的一个子集进行编码,以便我只提取将由管道中某个位置的控制器类填充的属性。最终,我希望能够使用 FooAppStateSubset “连接”,因此在开发时我们可以轻松地挑选出相关的道具,并为我们当前的网站部分设置。

我怎样才能确保...

  1. FooAppStateSubset包含在 AppState 接口中也可以找到的属性和值
  2. FooAppStateSubset不需要列出来自 AppState 的非可选参数
  3. 如果前两个规则被破坏,则在编译和构建时失败
  4. 属性的自动完成将是一个很酷的奖励。好吧,如果这是不可能的。
  5. 能够在整个网站上定义模型而不需要让主 AppState 接口实现所有分散的子集模型会很好。

楷模:

0 投票
1 回答
788 浏览

javascript - TypeError:无法读取 null 的属性“购物车”

这是我第一次使用 Redux,所以请多多包涵,因为我并不真正了解整个事情是如何运作的。我正在尝试访问 CartPlantContainer.js 中的 Redux Store。当console.log(this.props.user)我得到:

但是当我 console.log(this.props.user.carts) 我得到错误:

TypeError:无法读取 null 的属性“购物车”

我不确定我做错了什么。我只想能够传递this.props.user.carts到我的下一个组件CartPlants,以便我可以遍历购物车并渲染购物车中的所有植物。

如果您需要任何进一步的信息,请告诉我。我很乐意发送更多我的代码。新手在这里,所以请尝试使用尽可能多的外行术语。先感谢您!

还有我的用户减速器。

在后端,我的 API 在用户中嵌套了购物车。商店也描述了这一点。我不确定是否需要为 User 中的每个属性包含一个默认值,或者是否将整个对象设置为 null 就足够了。

当我console.log(this.props.user.carts[0])现在收到:

{id: 5, checkout: false, user_id: 5, total: 2200, cart_plants: Array(20)}

但是当console.log(this.props.user.carts[0].cart_plants)我得到:

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

我完全被我做错了什么难住了。

更新:

我向我的对象添加了一个空对象,initialState并且能够console.log(this.props.user.carts[this.props.user.carts.length-1].cart_plants)返回 cart_plants 数组。

但是,尝试在单独的generateCartPlants()函数中映射它们会导致错误

TypeError:无法读取未定义的属性“地图”

**有人有什么想法吗?我真的需要这方面的帮助才能推进我的项目,但我真的被困住了。如果需要,我可以提供更多代码,请告诉我!