Vue.js 如何在vuejs中将道具传递到模式对话框中?

Vue.js 如何在vuejs中将道具传递到模式对话框中?,vue.js,modal-dialog,vue-props,Vue.js,Modal Dialog,Vue Props,在Vuejs应用程序中,当用户单击按钮时,我会弹出一个模式对话框。我需要将一个道具传递到这个模态组件中。通常,我将道具传递给子组件没有问题。为什么这个案例不同?如果可以避免的话,我宁愿不在商店里存储任何数据。当模式打开时,道具collaboratorSelected为空字符串,即它不注册父组件传递的新道具值,而是在父组件装载时保留初始值设置。这个道具需要反应灵敏 父组件 从“axios”导入axios; 从“./store.js”导入存储; 从“@/components/EditShare”导

在Vuejs应用程序中,当用户单击按钮时,我会弹出一个模式对话框。我需要将一个道具传递到这个模态组件中。通常,我将道具传递给子组件没有问题。为什么这个案例不同?如果可以避免的话,我宁愿不在商店里存储任何数据。当模式打开时,道具collaboratorSelected为空字符串,即它不注册父组件传递的新道具值,而是在父组件装载时保留初始值设置。这个道具需要反应灵敏

父组件


从“axios”导入axios;
从“./store.js”导入存储;
从“@/components/EditShare”导入EditShare;
从“jquery”导入$;
导出默认值{
名称:“共享”,
数据(){
返回{
collaboratorToEdit:“”,
合作者:[“1”、“2”、“3”]
};
},
组成部分:{
编辑共享
},
方法:{
showEditShare(合作者){
this.collaboratorToEdit=合作者;
let element=$('#editShare');
$(元素).modal('show');
}
}
子模态组件


添加共享
{{collaboratorSelected}}
从“axios”导入axios;
从“./store.js”导入存储;
从“jquery”导入$;
导出默认值{
名称:“编辑共享”,
道具:{
选定的合作者:字符串
},

我相信,如果您正在使用jQuery,那么jQuery代码将在属性值传播到子组件之前执行

尝试将jQuery代码包装到一个方法中,看看是否有效。类似如下: this.collaboratorToEdit=合作者

  this.$nextTick(function(){
    let element = $('#editShare');
    $(element).modal('show');
  });
我在中做了一些实验,我能够看到函数中的代码如何不等待属性值传播(正如您所看到的),以及在使用$nextTick时它如何等待属性值传播


让我知道它是否有效。

我相信如果您使用的是jQuery,那么jQuery代码将在属性值传播到子组件之前执行

尝试将jQuery代码包装到一个方法中,看看是否有效。类似如下: this.collaboratorToEdit=合作者

  this.$nextTick(function(){
    let element = $('#editShare');
    $(element).modal('show');
  });
我在中做了一些实验,我能够看到函数中的代码如何不等待属性值传播(正如您所看到的),以及在使用$nextTick时它如何等待属性值传播


让我知道它是否有效。

将jquery与vue一起使用可能不是一个好主意“无测试”是什么意思?当模式打开时,this.collaboratorToEdit有什么值?我编辑了问题以解释“无测试”。正如预期的那样,变量collaboratorToEdit的值为“1”、“2”或“3”取决于用户在v-for循环创建的列表中选择的内容。问题是子模态组件的道具不采用此值。jQuery可能会完全弄乱Vue。您是否考虑改用Vue样式/转换?一切似乎都很好,但可能与您正在使用jQuery以及可能的p相关打开模式后,属性会更新。请尝试放置两行代码,获取#editShare,然后在$nextTick函数中显示模式,这可能有助于将jquery与vue一起使用。这可能不是一个好主意“无测试”是什么意思?当模式打开时,这个.collaboratorToEdit有什么值?我编辑了这个问题以解释问题“无测试”。如预期,变量collaboratorToEdit的值为“1”、“2”或“3”"取决于用户在v-for循环创建的列表中选择的内容。问题是子模态组件的道具不采用此值。jQuery可能会完全弄乱Vue。您是否考虑改用Vue样式/转换?一切似乎都很好,但可能与您正在使用jQuery以及可能的p相关打开模式后,属性将更新。请尝试放置两行代码,以获取#editShare,然后在$nextTick函数中显示模式,这可能会有所帮助