我可以在 Vuex 中从 getter 进行调度吗

2024-03-28

小提琴:here https://jsfiddle.net/9a6Lg2vd/6/

我正在使用 Vue 2 和 Vuex 创建一个 web 应用程序。我有一个商店,我想从 getter 获取状态数据,我想要的是如果 getter 发现数据尚未填充,它会调用调度并获取数据。

以下是我的 Vuex 商店:

const state = {
  pets: []
};

const mutations = {
  SET_PETS (state, response) {
    state.pets = response;
  }
};

const actions = {
 FETCH_PETS: (state) => {
      setTimeout(function() { 
            state.commit('SET_PETS', ['t7m12qbvb/apple_9', '6pat9znxz/1448127928_kiwi'])
    }, 1000)
 }
}

const getters = {
    pets(state){
    if(!state.pets.length){
        state.dispatch("FETCH_PETS")
    }
    return state.pets
  }
}

const store = new Vuex.Store({
  state,
  mutations,
  actions,
  getters
});

但我收到以下错误:

未捕获的类型错误:state.dispatch 不是一个函数(…)

我知道我能做到这一点,从beforeMountVue 组件,但我有多个使用相同 Vuex 存储的组件,所以我必须在其中一个组件中执行此操作,应该是哪个组件以及它将如何影响其他组件。


Getters 无法调用调度,因为他们传递了state not context商店的

动作在传递上下文时可以调用状态、调度、提交。

Getter 用于管理“派生状态”。

如果您改为设置pets声明需要它的组件,然后你只需调用FETCH_PETS从应用程序的根目录删除对 getter 的需要

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在 Vuex 中从 getter 进行调度吗 的相关文章

  • 在当前元素的 onchange 上发送 $(this)

    我有这个html
  • 在一段时间内切换(或闪烁)表中的特定单元格

    我已经在 Html 中创建了一个表格 我想让一个特定的单元格闪烁 打开和关闭 您能否让我知道是否可以使用 javascript h4 Two rows and three columns h4 table border 1 width 10
  • Javascript 单元测试 - DOM 操作

    我对 Javacript 单元测试很陌生 有件事一直困扰着我 在测试 javascript 时 我们经常需要进行 DOM 操作 看起来我正在对控制器 组件中的方法 函数进行单元测试 但我仍然需要依赖模板中的 HTML 元素 一旦 id 或在
  • Safari 在后台选项卡中延迟 setInterval / setTimeout(间隔 > 1000ms)

    请注意 当页面位于后台选项卡中时 Safari 10 0 3 会延迟我的代码 var interval 2000 var scriptTime new Date getTime function addTime scriptTime int
  • 向回调函数添加附加参数

    我正在 Node js 中构建一个系统 该系统应该查找文件夹数组中的所有文件 统计它们 然后使用该信息执行一些其他工作 我使用 fs readdir 从每个文件夹同步获取所有文件 我的代码如下所示 for i 0 max paths len
  • 如何解释这个正则表达式 /[\W_]/g

    我的代码是 var result2 result replace W g replace replace 该代码有效 我得到了我需要完成的工作 但我不明白正则表达式如何 W g有效 但我找不到任何我理解的文档 g这是一个全局正则表达式 因此
  • 如何隐藏 webpack-dev-server 日志?

    一旦 webpack dev server 启动 控制台将输出 wds Project is running at https 127 0 0 1 3002 wds webpack output is served from wds Con
  • YouTube iframe 不响应 postMessage 命令

    我正在尝试使用来自父级的 postMessage 命令来控制 YouTube iframe 但它似乎不起作用 由于多种原因 我没有使用 YouTube API 只是使用带有 YouTube 嵌入视频的普通 iframe 我尝试发送命令的方式
  • Javascript Replace() 仅替换第一个匹配项[重复]

    这个问题已经存在了 你好 请参阅这里的 jsfiddle http jsfiddle net moolood jU9QY http jsfiddle net moolood jU9QY var toto bien address 1 bie
  • 分层边缘捆绑:添加父组标签

    我对 HTML 和 JavaScript 还很陌生 我面临着著名的分层边缘捆绑可用here https bl ocks org mbostock 7607999 由 D3 js 库生成 My goal is to add a semi ci
  • 如何使用Sinon监视导入的函数?

    假设我们想使用 Sinon 测试另一个函数是否调用了一个特定函数 fancyModule js export const fancyFunc gt console log fancyFunc export default const fan
  • bootstrap-vue 与 b 表中的复选框相关的问题

    我在使复选框正常工作时遇到问题 为 选定 槽中的每一行呈现的复选框未绑定到正确的行 当您单击该复选框时 它将顶行的复选框设置为真 假位置 问题 1 如何将行复选框的真 假状态绑定到其行项目 我试图将其绑定到 data item select
  • 动态创建多个上传文件

    我想知道是否有人知道动态创建上传表单的最佳方法 这就是我想要实现的目标 下面显示的代码允许一次上传 我想要一个按钮 按下该按钮后 应添加另一种形式用于文件上传 因此 如果我想上传 假设有 7 个文件 我想按按钮 7 次来创建这些上传表单 每
  • `[$injector:nomod] 模块“google-maps”不可用`

    我正在使用 angular google maps 在角度应用程序中处理谷歌地图 为此 我必须添加angular google maps js到项目 如果我按以下方式添加脚本 该页面可以正常工作 不会出现任何错误 但如果我使用本地副本 它将
  • 我想从 Cakefile 运行 d3

    我想从命令行执行一些 d3 代码 最初我只是尝试了类似的方法 task data Build some data with d3 gt d3 require lib d3 v2 console log d3 version d3 versi
  • 将数组中的项目移动到最后一个位置

    我有一系列对象 我想将选定的对象移动到数组中的最后一个位置 我如何在 javascript 或 jquery 中执行此操作 这是我的一些代码 var sortedProductRow this product row for var s i
  • IFrame Resizer 未调整大小

    我正在这个页面上工作 http factor1hosting com dnaz wordpress certifications http factor1hosting com dnaz wordpress certifications 我
  • 在 Firefox 中单击桌面通知时如何将焦点移至选项卡?

    我正在一个网站中实现桌面通知 该网站会在新消息到达时显示通知 我希望当用户单击通知时 打开网站的浏览器选项卡能够获得焦点 我可以使用以下代码在 Chrome 中实现此功能 var n new Notification Title body
  • 返回深度嵌套数组中对象的索引的函数

    我可能需要编写一个函数 仅输出数组内对象的索引 显然 使用 inArray 在下面的示例中返回这个索引就可以了 array one two three inArray one array 0 对于更复杂的数组 如何找到嵌套对象的索引 arr
  • 如何使用 Playwright 打开新选项卡(例如,单击按钮在新选项卡中打开新部分)

    我正在寻找针对当前情况的更简单的解决方案 例如 您打开 google 任何其他网站 并且希望通过单击按钮 例如 Gmail 使用 Playwright 在新选项卡中打开此页面 let browser page context describ

随机推荐

  • 使用 javascript 在循环内设置超时

    我正在制作一个解谜函数 它使用当前打乱顺序的一系列拼图 每个片段都有一个 id 它指向数组中的正确位置 我在要交换的部分上设置了叠加颜色 我希望在着色和交换的部分之间有一个延迟 function solvePuzzle while rezo
  • JavaScript/GSON:通过对象图动态访问 JSON 引用(循环引用)

    由于存在多个循环引用 我在通过 Google GSON 序列化 Java 对象时遇到了问题 我所有的尝试都以 StackOverflowException 结束 因为 GSON 无法处理这些循环引用 作为解决方案 我发现以下GraphAda
  • SELECT FOR UPDATE 中的数据库死锁

    我的应用程序间歇性陷入僵局 我的应用程序有 1 个表 例如 EMPLOYEE ID PK NAME SAL 并且有 2 个会话 第一节 SELECT ID NAME SAL FROM EMPLOYEE WHERE SAL SELECT MI
  • spring mvc 对 URL 参数进行加密和编码

    我正在编写一个 Spring mvc 应用程序 它需要发送一封包含链接和加密参数的电子邮件 用户将单击该链接 我需要解密新页面中的参数 因此 我正在编写一个 util 类来加密和解密以及对参数进行编码和解码 当我运行我的独立java类 用于
  • 你能告诉 PHP 在发生错误时发送标头(如 500)吗?

    在我当前的项目中 我使用普通 HTTP 请求查询 PHP 但也通过 AJAX 查询 有时返回 JSON 格式的数据 有时返回普通文本 当发生错误时 在正常请求中 您会看到错误消息并可以采取一些措施 另一方面 对于 AJAX 请求 您无法确定
  • getchar() 返回错误的特殊情况是什么?

    所以我知道getchar 当输入结束或发生错误时返回 EOF 我也知道我可以通过以下方式检查发生了哪些情况ferror stdin and feof stdin 我想知道什么情况下会特别发生错误 我检查了这两个函数的手册页 但那里没有任何内
  • 就性能而言,使用 std::memcpy() 还是 std::copy() 更好?

    是不是比较好用memcpy如下所示还是使用更好std copy 就性能而言 为什么 char bits NULL bits new std nothrow char int copyMe gt bits 0 if bits NULL cou
  • 使用 Foreman 重新启动单个进程

    我已经使用 foreman 一段时间来以集中方式扩展我的各种 ruby 流程 并且它对我来说工作得很好 无论如何 我希望有一些功能来重新启动进程 甚至给它更多的控制权 例如终止进程并再次启动它 在当前的实现中 当我终止一个进程时 主工头中的
  • Chrome 无法播放 MP4

    我每天都会从我的安全摄像头系统中收到几封发送到我的 Gmail 帐户的电子邮件 此类邮件包含来自摄像机的 MP4 格式的视频剪辑 每个大约 20 秒 的链接 奇怪的是 在基于 Mageia 的 PC 上单击此类链接后 剪辑将打开并在新的单独
  • 在matlab中将绘图保存到图像文件中:saveas和print之间的区别

    我想知道在matlab中将绘图保存到图像文件时 saveas和print有什么区别 什么情况下两者可以同时使用 什么情况下只能使用其中一种 感谢致敬 我相信 SAVEAS 只是 PRINT 的包装 查看 SAVEAS 的源代码 编辑 sav
  • 对于缺少模板,给出 404 而不是 500 错误

    我有一个 Rails 3 0 应用程序 正在进行 3 2 升级 每当有人请求不存在的模板时 它都会在生产中给出 500 错误 例如 mysite com blog posts 532 将 ID 为 532 的帖子以 HTML 形式发送回来
  • 如何访问页面框架以通过 UWP 中的 UserControl 对象导航页面?

    我正在开发一个 UWP 应用程序 涉及多个用户控制 https learn microsoft com en us dotnet api system windows controls usercontrolMap 中的对象使用Window
  • 月份 R 没有前导零 [重复]

    这个问题在这里已经有答案了 format 在 R 中没有明显的选项来显示不带前导 0 的月份 与年份相同 还有其他方法可以得到这个结果吗 该解决方案应允许用户灵活选择是否仅在日 月 年或任意组合中省略 0 in as Date 2005 0
  • 在特定窗口中打开 Org Capture 缓冲区?

    我成为 Emacs 用户大约一年左右了 我通常为每个会话设置相同的窗口 四个窗口 我已经设置了捕获模板并且可以捕获我想要的内容 但是 我希望所选的捕获模板在新的 第五个 窗口中打开 保留我现有的窗口 而不是捕获模式暂时将我从窗口设置中拉出来
  • 注入相同类型的多个实例 - Autofac

    我试图在构造函数中注入同一类的多个实例 然而 当它们被解析时 它们总是解析为同一个实例 这是我的注册码 public Repository Class1 class1 Class1 class2 class1 class1 class2 c
  • SQLite 中的 SELECT INTO 语句

    sqlite是否支持SELECT INTO陈述 实际上我正在尝试将数据保存在table1 into table2作为修改数据之前数据库的备份 当我尝试使用SELECT INTO陈述 SELECT INTO equipments backup
  • 如何缩放具有背景大小的 div 上的背景图像

    我想要一个 div 元素拉伸 33 宽度 背景图像用 css 完成 background image url background size cover 如何在鼠标悬停或 mouseneter 上对 div 中的背景图像进行放大动画 是否有
  • 我的 Objective-C 单例应该是什么样子? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Rails 找不到临时目录(ArgumentError)

    我正在将我的 Rails 项目上传到运行 12 04LTS 的 Ubuntu 服务器 但我似乎无法解决此问题 无论我是进行捆绑安装还是尝试使用 gem 我都会收到该错误 我读了很多 但仍然无法修复它 lib ruby 2 0 0 tmpdi
  • 我可以在 Vuex 中从 getter 进行调度吗

    小提琴 here https jsfiddle net 9a6Lg2vd 6 我正在使用 Vue 2 和 Vuex 创建一个 web 应用程序 我有一个商店 我想从 getter 获取状态数据 我想要的是如果 getter 发现数据尚未填充