vue.js - 在 Vue 中,如何将特殊的 $event 变量作为参数传递?
问题描述
在 Vue 中,我正在侦听更改事件并尝试将特殊的 $event 变量传递给如下操作:
<template>
<div>
<span>Filter Todos:</span>
<select @change="filterTodos($event)">
在我的行动中,我现在刚刚得到这个:
filterTodos(event) {
console.log('Here is the event:', event);
}
当我教程中的 Brad Traversy 执行此操作时,他会在控制台中获取事件。但是当我这样做时,我得到了这个:
{getters: {…}, state: {…}, rootGetters: {…}, dispatch: ƒ, commit: ƒ, …}
commit: ƒ boundCommit(type, payload, options)
dispatch: ƒ boundDispatch(type, payload)
getters: {}
rootGetters: {}
rootState: {__ob__: Observer}
state: {__ob__: Observer}
__proto__: Object
我要去那里做什么?为什么我没有和他一样?评论部分的其他人似乎对此没有任何问题,所以我一定是在做一些愚蠢的事情,但我无法发现它......
解决方案
我现在意识到了错误......我不能将参数“事件”作为我的 filterTodos 操作中的唯一参数。如果我执行以下操作,那么它会起作用,并且我会在控制台中收到事件......
filterTodos({ commit }, event) {
console.log('Here is the event:', event);
commit('testForNow');
}
因此,动作的第一个参数(在本例中为 { commit })与我将在本教程后面针对该动作进行的任何突变相关。'event' 需要成为我的第二个参数,即使 '$event' 是我调用此操作时的唯一参数。
推荐阅读
- javascript - 为什么这个属性不在 Object.assign 中合并?
- sql - AZURE SQL Server 和 Office 365 Excel 身份验证
- typescript - 如何在 TypeScript 的通用类型参数中使用联合类型作为约束
- android - 如何手动让 ACRA 发送待处理的报告(离线使用)
- c++ - 默认的 lambda 参数可以像类本身一样具有访问权限吗?
- python - 为什么它说 unhashable type: 'list' 即使它是一个字符串?
- python - 如何使用熊猫用相邻列的值替换
- google-bigquery - Bigquery比特币数据集SQL查询获取时间戳后的交易
- node.js - 猫鼬,nodejs,在子文档中按日期排序
- javascript - 重命名工作表时如何更新 Google Sheet Add-on 侧边栏下拉列表?