问题标签 [vuex4]

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 回答
1041 浏览

nuxt.js - vue.reactive is not a function

I tried to migrate a vue project to a nuxt project. The problem is using store/index.js file.

I copied the origin file into store folder and this error occurs. I could't find the reason. enter image description here

store/index.js

0 投票
0 回答
64 浏览

javascript - 我应该如何通过我在 vue 3 中的视图发送数据?

我对 Vue 很陌生。我安装了 Vuex 4、Vue Router 4 和 Vue 3 cli。

我正在从一个大的 json 文件中获取数据并将其放入我的 vuex 存储中。该文件由许多嵌套数组/对象构成,这些嵌套数组/对象基于“银河-有-星团-有-恒星-有-行星”等概念,每个都有自己的对象,每个对象都有很多属性。

顶层存储在 vuex 中,我有一个 GalaxyView 文件,如下所示:

第一个视图完美运行,并显示了一个全屏按钮,一旦单击,应该转到每个星团 - 这应该显示一堆星按钮,然后应该转到行星等。

我需要一种方法将被点击的特定星团/恒星/行星以及随之而来的对象数据发送到每个后续视图,以便我可以遍历并显示属性。

我尝试的第一种方法是直接使用组件并使用像这样的道具

然后在下一个视图中迭代它 - 但是它很混乱,我觉得 vue-router 路由(不是双关语)是更好和更清洁的选择。

有没有办法通过创建动态路由器链接来做到这一点,或者我应该回到使用组件/道具方式吗?

这是我的路线 atm

谢谢!

0 投票
1 回答
23 浏览

vue.js - 如何将 api 的结果与来自 Vuex 的操作一起使用

当用户登录时,我正在尝试通过 axios 检索用户的收藏夹。为此,我将 Vuejs 与 Vuex 一起使用。关于日志记录过程的所有内容都可以,但是关于收藏夹,我遗漏了一些东西,但我不知道是什么。

store.ts是这样的:

在我的收藏夹组件中,我有:

然后在模板中:

0 投票
1 回答
637 浏览

vue.js - 使用 Vuex 4 和 Vue 3 组合 API 从调度的操作中访问数据

在我的应用程序中,我有一个 Vuex 4 商店和一个 Vue 3 Composition Apisetup()方法。

在商店操作中,我使用 axios 进行 api 调用以获取账单支付列表。

getAllBills操作不直接存在于我的Store.js文件中,它作为一个模块存在。

然后在我的 Bill.vue 文件中,我有setup()方法并尝试访问要在整个 Bill.vue 文件中使用的数据。

如果我从上面检查控制台.then() res返回未定义。如果我.then()billPayments声明中删除并执行以下操作:

在控制台中我得到

当前商店:

端点正在工作,如果我使用 Postman,我的所有数据都会按预期返回,但我无法弄清楚如何使用带有组合 API 的调度操作访问该数据。

Vuex 4 文档没有提到如何实际解决访问要在同一组件中使用的数据的承诺。

0 投票
0 回答
522 浏览

typescript - Vuex 4 - 在初始化之前无法访问“商店”

我的 vuex 商店有一个小问题,在应用程序初始化期间未定义。

在 http-common.ts 文件中,应用程序初始化时未定义商店。当应用程序启动时,第一次分派用户模块操作是在我的一个组件内。

我该如何解决这个问题?访问令牌是在 beforeRoute 中设置的,我在其中使用 MSAL 登录用户,但它永远不会到达那一点。

如果我像这样在它周围添加一个 setTimeout ,它就可以工作

0 投票
0 回答
26 浏览

javascript - 为什么我不能从状态 VUEX 4 访问这个变量

我当然在没有 state.groupCrud.group 的情况下尝试过,但还是不行。我的语法是否正确。我正在使用 vuejs3,我将提供该对象的一些屏幕截图。

这是状态对象:

我从 api 获取数据是这样的:

我将它设置为这样的状态:

这就是我使用状态的方式

这是console.log(state.groupCrud);对象

这是console.log(state.groupCrud.group)对象

当我尝试使用 state.groupCrud.group 时,我得到一个空的代理对象,尽管该对象不是空的

0 投票
1 回答
167 浏览

typescript - 商店状态类型不适用于模块

我想将模块用于应该与 typescript 一起使用的 vuex (^4.0.2) 存储。所以我就这样开始了:

但这会产生这个错误:

“RootState”类型上不存在属性“会话”。

文档建议每个模块的状态都包含在商店的状态中并使用:

显示该模块已包含在内。

应该如何设置类型以正确反映状态?

0 投票
0 回答
24 浏览

javascript - 使用 Vue 3 和 Vuex 4 过滤对象数组并为每个对象添加一个新属性

要检索 Vue 3 组件中的对象列表,我在 Vuex 4 中使用了一个 getter,如下所示:

要检索 Vue 3 组件中的对象列表,我在 Vuex 4 中使用了一个 getter,如下所示:

您会注意到我执行了一个计算并将结果添加到一个名为 balance 的新属性中。

它完美地工作。

但我注意到在对象上添加 balance 属性也反映在 state.entries 中的对象中。

我不喜欢我的 getAccountingEntries 函数在不经历突变的情况下更改状态,尽管它似乎工作正常。

我做错了吗?有没有办法避免这种副作用?

谢谢您的帮助。

0 投票
0 回答
45 浏览

typescript - 类型 '{ 方法:{ loadItems: ActionMethod; 上不存在属性 'loadItems' }; 挂载():无效;}'

我使用模块化 vuex 商店,因为应用程序的每个模块都有自己的商店,我想执行我的 vuex 商店的动作,创建状态、突变和动作,但是当我在视图中执行动作时出现错误:属性' loadItems' 类型不存在'{方法:{ loadItems:ActionMethod;}; 挂载():无效;}

索引.vue:

存储/索引.ts:

垫片-vuex.d.ts:

0 投票
0 回答
16 浏览

vuex - 从操作调用 api 时 Vuex 状态保持未定义

我不明白 vuex 的每一个行为。

当我从组件调用 searchText 并通过操作设置tableEquipments它工作正常

但是当我从 vuex 操作中调用它时,searchText返回一个响应,但是 tableEquipments表的值保持未定义