Javascript Vue.js和Vuetify插槽范围
我真的不知道插槽示波器是如何工作的。想知道是否有人能帮我解决这个(看起来)很简单的问题Javascript Vue.js和Vuetify插槽范围,javascript,vue.js,vuetify.js,Javascript,Vue.js,Vuetify.js,我真的不知道插槽示波器是如何工作的。想知道是否有人能帮我解决这个(看起来)很简单的问题 <v-data-table> <template slot="items" slot-scope="props"> <tr @click="props.expanded = !props.expanded"> 我想做的是根据外部事件手动更新“道具”以扩展此行。问题是,我不知道如何在上面提到的上下文之外访问它。props.expanded=!pr
<v-data-table>
<template slot="items" slot-scope="props">
<tr @click="props.expanded = !props.expanded">
我想做的是根据外部事件手动更新“道具”以扩展此行。问题是,我不知道如何在上面提到的上下文之外访问它。props.expanded=!props.expanded
工作正常
有什么想法吗?组件似乎没有内置的方法。数据表创建自己的扩展对象时,不使用传入的属性 您可以使用ref 以下代码将数据表上的ref设置为
accesshere
<v-data-table ref="accesshere" :headers="headers" :items="dataTable"
:search="search" item-key="id">
乔丹,谢谢你的回复!我已经让它起了作用,但它有一些奇怪的副作用。所以,我现在要做的是在添加新行之后扩展它。所以我尝试了:this.$refs.accesshere.expanded['2']=true;如果我这样做,它会起作用。$forceUpdate(),如您所述。但是,在那之后,它就不能正常工作了。我再也不能点击它来折叠它了。如果我单击另一行,它将正常折叠,而其他行仍然可以正常工作。你知道为什么会发生这种情况,和/或如何解决它吗?你也可以参考以下链接:
methods: {
itemShow () {
this.$refs.accesshere.expanded['2'] = true
this.$forceUpdate() // This works, I don't know if it is recommended though
}
}