问题标签 [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.
reactjs - 迭代地创建新组件。如何将每个新组件添加到 redux 商店?
我通过数据库输入(数据)迭代生成卡组件。我试图弄清楚如何正确地为每张卡映射StatetoProps和mapDispatchtoProps。目前,我的addCard操作导致 TypeError,因为它表示addCard操作未定义。
我的 Reducer 组件有一个 initialState,其中包含一个卡片数组,我试图在其中放置所有这些卡片。
可能有一个我只是缺少的解决方案,但我会很感激任何建议。
我的 addCard 方法可能写错了,或者我的 mapStatetoProps return{} 不正确。
javascript - 如何在reducer的数组索引处添加对象
我有存储数组(store.calendar[0].todos[{title: title, etc...}]
)
我需要将 action 对象添加到数组的索引 todos 中:我尝试过使用这个 reducer,但出现错误:
state.calendar[newTodo.day].concat 不是函数
我的减速机:
我的行动:
我的添加待办事项功能:
react-native - 在 react-native-debugger 中配置 redux 存储的初始状态?
是否可以在 react-native-debugger中配置 redux 存储的初始状态?
我想把它指向我磁盘上的 JSON 文件或类似的东西。
这将允许将用户旅程中的任意位置作为我的起点,这需要 redux 存储的复杂状态已经存在。
angular - ngrx 商店选择仅订阅特定操作
我想知道是否可以按操作过滤 store.select 订阅(就像我们在效果中所做的那样)。请看下面的代码:
每次调度一个动作(无论哪个动作)时,每个具有 store.select.subscribe 的活动组件(未销毁且未取消订阅)都会被调用。
如果我们的应用程序有 100 个动作,则每次触发 1 个动作时,都会调用所有活动组件(未销毁或取消订阅)store.select.subscribe。(如果影响组件的状态没有改变,我知道我们不会有任何问题,因为状态仍然相同)。
我为什么要问这个问题?
有时,每当影响组件的状态发生变化时,我都需要在组件中执行一些操作。所以,每次我需要做一个 if 语句来检查对象是否已经改变。如果我有操作过滤器,则不再需要此 if 语句,因为我过滤了影响我的组件的特定操作的订阅。请参阅下面显示此 if 语句的代码:
我的想法是有道理的,还是我误解了ngrx的概念?我应该为此使用其他类似效果的东西吗?
提前致谢。
javascript - 如何解决与 redux store 相关的“Invariant Violation”错误?
我正在尝试进行 DOM 测试,以检查单击按钮时是否打开了对话框。然后我得到了这个错误
不变违规:在>“连接(照片)”的上下文或道具中找不到“商店”。要么将根组件包装在 a 中,要么 > 明确地将“store”作为道具传递给“Connect(Photos)”。
我使用了 jest,并且我的组件使用连接到 redux 商店
导出默认连接(mapToProps)(照片);
配饰Photos.js
附件Photos.test.js
这就是我得到的结果。
不变违规:在>“连接(照片)”的上下文或道具中找不到“商店”。要么将根组件包装在 a 中,要么 > 明确地将“store”作为道具传递给“Connect(Photos)”.strong 文本
node.js - React Redux - 将多个商店增强器传递给 createStore() 时出错
我有一个运行 redux 和 thunk 的反应应用程序,它一直运行良好。我需要在页面重新加载时保持存储状态,以免数据丢失,因此创建了一个函数,将数据存储在本地存储中,然后返回准备添加到 createStore 的数据(https://stackoverflow.com/a/ 45857898/801861)。数据存储工作正常并返回准备好设置状态的对象。在 createStore 添加数据对象时,react 无法编译并出现此错误:
错误:您似乎将几个商店增强器传递给 createStore()。这是不支持的。相反,将它们组合成一个函数
这是当前代码返回错误:
我正在运行的原始代码:
我试图在网上找到一些类似的问题后解决这个问题,编译但破坏了最初工作正常的站点代码:
不知道我需要改变什么才能让它工作,任何帮助表示赞赏。
reactjs - 如何清理你的商店
在发布之前,我试图在这篇文章中阅读 Dan Abramov 的超级答案
我的代码有一个小问题,我很乐意理解我的错误:
1)这是我的索引文件
我试图添加这个:
这是文件的树,
问题是我收到错误“你达到了最大调用堆栈大小”
我究竟做错了什么 ?我不知道这是否是问题,但我们正在使用 Immutable.js
更新
这是现在的索引文件
reactjs - subscribe() 没有功能,不能 getState()
我想订阅状态更改并在需要时重新渲染组件(状态更改) 渲染 2 个组件。我进行更新的地方(产品列表)和显示所选项目更新列表的地方(产品购物车)
我无法从购物车中获取状态
这是购物车组件- 我希望订阅商店 c 并在状态更改时重新呈现(不工作)
这是 HotelDetails 组件 - 我在其中选择要预订的日期、夜晚
店铺
行动
减速机
这是该网站的演示
typescript - 如何验证 Foo 类型仅包含 Bar 类型的属性子集?
我有一个接口 AppState,我希望能够针对这个主 appstate 接口的一个子集进行编码,以便我只提取将由管道中某个位置的控制器类填充的属性。最终,我希望能够使用 FooAppStateSubset “连接”,因此在开发时我们可以轻松地挑选出相关的道具,并为我们当前的网站部分设置。
我怎样才能确保...
- FooAppStateSubset仅包含在 AppState 接口中也可以找到的属性和值
- FooAppStateSubset不需要列出来自 AppState 的非可选参数
- 如果前两个规则被破坏,则在编译和构建时失败
- 属性的自动完成将是一个很酷的奖励。好吧,如果这是不可能的。
- 能够在整个网站上定义模型而不需要让主 AppState 接口实现所有分散的子集模型会很好。
楷模:
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:无法读取未定义的属性“地图”
**有人有什么想法吗?我真的需要这方面的帮助才能推进我的项目,但我真的被困住了。如果需要,我可以提供更多代码,请告诉我!