Vue.js:TypeError:无法设置只有 getter 的 # 的属性props

我试图实例化一个Vue组件,但出现了以下错误:

[Vue warn]: Error in render: "TypeError: Cannot set property props of 
#<Object> which has only a getter"
(found in <Root>)

我也在使用vuedraggable库,但我认为问题更多的是Vue问题,而不是vuedraggable问题.下面是我的代码.

这是一个可拖动的列表.vue

<template src="./draggable-list-component.html"></template>
<script src="./拖拉列表.js"></script>

拖拉列表.js

const draggable = require("vuedraggable");

module.exports = {
  name: "draggable-list",
  components: {
    draggable
  },

  // properties which has been passed from the parent vue to the component
  props: ["title", "elements"],

  data() {
    return {
      isDragging: false,
    };
  },

  methods: {
    test() {
      console.log("blou");
    }
  }
};

可拖动列表组件.html:

<div id="draggable-list">
  <draggable element="ul"
             :list="elements">
    <!-- TODO -->
  </draggable>
</div>

我的主菜.js调用另一个js文件:

require("./components/manager");

在manager中,我实例化了我的Vue实例:

const Vue = require("vue/dist/vue.common");
const draggableList = require("./draggable-list.vue");

let triggerLibrary;

triggerLibrary = new Vue({
  el: "#draggable-list",
  template: "<draggableList :title='title' :elements='triggerElements' 
/>",
  components: {draggableList},

  data: {
   title: "Trigger library",
    triggerElements: [{name:"Trigger name", description:"Quick trigger 
description"}]
  }
});

我在索引中使用它.像这样的html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>planner</title>
  </head>
  <body>
  <div id="draggable-list">
    <draggable-list></draggable-list>
  </div>
  </body>

有人看到这里出了什么问题吗?

推荐答案

在使用CommonJS模块时,请try 这样要求Vue组件:

const draggableList = require("./draggable-list.vue").default;

Vue.js相关问答推荐

为什么在Vue.js中修改非react 性似乎是react 性的?

VueJS使所有组件崩溃,而不是只有一个

在计算(computed)属性上调用数组方法

Nuxt 和 Vite 有什么区别?

如何使用 async/await 在 vue js 中添加标头

Vuetify/Nuxt 生产环境组件在开发环境中无法正常工作

Webpack 导入的模块不是函数

如何对对象数组进行 v-model

Vue CLI - 编译后将配置文件保留为外部

在 vue 3 中使用 vue-chartjs:createElement 不是函数

全局方法和实例方法有什么区别?

单击复选框后,V-model 未更新

如何使用 vuejs 从 SPA 访问 /storage -laravel- 中的图像

阻止 Vue 积极重用 dom 元素

Vuex:无法读取未定义的属性'$store'

错误:找不到模块'@vue/babel-preset-app'

Vue.js react性如何在幕后工作?

Vue.JS 2.0 修改不相关数据时速度慢

我们可以像在 Angular 中一样创建 Vue.js 组件时将 HTML、JS 和 CSS 文件分开吗?

如何在 Vue.js 2 应用程序中模拟 onbeforeunload?