Vuejs2 vue idb格式变量

Vuejs2 vue idb格式变量,vuejs2,store,indexeddb,vuex,Vuejs2,Store,Indexeddb,Vuex,您好,我正在使用vuex和vue idb制作一个web应用程序。 在我的一个视图中,我有一个带有过滤器字段的表。 我的数据使用vue idb存储,过滤器字段使用输入文本框事件和列单元格的标题名调用applyFilter methods函数 这是我的html ...some html <!--columns filters--> <tr> <td v-if='shownHeaders.length >

您好,我正在使用vuex和vue idb制作一个web应用程序。 在我的一个视图中,我有一个带有过滤器字段的表。 我的数据使用vue idb存储,过滤器字段使用输入文本框事件和列单元格的标题名调用applyFilter methods函数

这是我的html

...some html     
<!--columns filters-->
            <tr>
              <td v-if='shownHeaders.length > 0'>
                <input type='checkbox' @change='updateCheckboxList(-1)' :checked='checkAllCheckbox'>
              </td>

              <td v-for='(header,index) in headers' v-if='headers.indexOf(header)>-1'>
                <input @keyup="applyFilter(header,$event )" :disabled="thinking" :placeholder='header +" filter"'>
              </td>
            </tr>
我的问题是,我无法使用头变量(字符串)作为tasksSetFilter传递的dict的键,但如果我将其替换为具有相同名称的变量,它就会工作

有没有办法将字符串转换为变量名来解决我的问题?

试试以下方法:

store.dispatch('tasksSetFilter', {[header]: e.target.value})
此语法的作用是将参数设置为对象,其中键将是
头的值。这是ES2015采用的新语法

如果无法支持ES2015,则可以通过以下方式构建参数:

let filter = {}
filter[header] = e.target.value
store.dispatch('tasksSetFilter', filter)
试试这个:

store.dispatch('tasksSetFilter', {[header]: e.target.value})
此语法的作用是将参数设置为对象,其中键将是
头的值。这是ES2015采用的新语法

如果无法支持ES2015,则可以通过以下方式构建参数:

let filter = {}
filter[header] = e.target.value
store.dispatch('tasksSetFilter', filter)

什么是
taskSetFilter
?您好,Bert,taskSetFilter指idb,允许您在任务数据库上设置筛选器(在我的情况下),但任务可以被任何其他db名称替换。如果我理解正确,
header
包含一个值,该值是要传递给操作的对象的键?header是列的名称,例如,它可以是“id”。我的问题是,如果我用“id”替换标题,它不起作用,但如果我用id替换它,它会起作用。什么是
taskSetFilter
?您好,Bert,taskSetFilter指idb,允许您在我的情况下在任务数据库上设置筛选器,但任务可以被任何其他db名称替换。如果我理解正确,
header
包含一个值,该值是要传递给操作的对象的键?header是列的名称,例如,它可以是“id”。我的问题是,如果我用“id”替换标题,它不起作用,但是如果我用idit替换它,它会起作用,谢谢。现在可以知道[]的作用了吗?括号只是向javascript指示它应该使用header的值作为所定义对象的键。看这个:它很有效,谢谢。现在可以知道[]的作用了吗?括号只是向javascript指示它应该使用header的值作为所定义对象的键。见此: