当前位置: 首页 > 知识库问答 >
问题:

如何传递数组到Vue中的道具时,使用打字和类组件装饰器

习旻
2023-03-14

我似乎无法找到使用Typescript和类组件库将数组作为道具传递给Vue中的组件的正确方法。按照官方模板,我尝试了以下操作:

<script lang="ts">
import { Component, Vue} from 'vue-property-decorator';

const AppProps = Vue.extend({
    props: {
        propsMessage: String,
    },
});

@Component({})
export default class Table extends AppProps {
    mounted() {
        console.log(this.propsMessage);
    }
}
</script>

在某些模板中包含此内容:

<template>
  <Table :propsMessage="['This', 'is', 'Bob']" />
</template>

实际工作,并提供以下输出:

["这","是","鲍勃"]

这就是我想要的,但这肯定不是将阵列作为道具传递的正确方法?我甚至没有将propsMessage定义为String[]。在做一些研究时,我发现本文提到了与此问题相关的一个bug。这个问题已经解决,最近刚刚合并。所以,现在应该有一种方法可以做到这一点,但我找不到任何关于如何正确做到这一点的文档。

共有1个答案

慕容念
2023-03-14

我认为现在可以将参数作为字符串传递,而不是字符串数组。我现在无法测试此代码,但它可能会将您推向正确的方向。如果您在实施过程中遇到问题,请告诉我。

表组件(Table.vue):

<template>
    <div>
        <h1>This is my table component</h1>
    </div>
</template>

<script lang="ts">
    import { Component, Vue, Prop } from 'vue-property-decorator';

    @Component
    export default class Table extends Vue {

        @Prop({ type: Array, required: true })
        propsMessage!: string[];


        constructor()
        {
            super();

            console.log(this.propsMessage);
        }
    }
</script>

加载表组件的主组件:

<template>
    <my-table :propsMessage="myArray"></my-table>
</template>

<script lang="ts">

    import Vue from 'vue';
    import Component from 'vue-class-component';
    import Table from 'WHERE-YOUR-TABLE-COMPONENT-IS-LOCATED'

    Vue.component('my-table', Table);

    @Component({
        components: { Table }
    })
    export default class Home extends Vue {

        myArray: Array<string> = [];

        constructor() {
            super();

            this.myArray = ['This', 'is', 'Bob'];
        }
    }
</script>
 类似资料:
  • 我试图在我的应用程序中分解组件,但在理解如何将状态和道具从父组件传递给子组件时遇到了一些问题。对于上下文,“我的子组件”是一个表,它在行中呈现较小的组件。 现在我有一个名为BookComponents的常量,它需要一本书并写入状态。我被卡住的地方是传递状态和道具到我的书桌组件,这样我就可以在书桌上呈现书籍,而不是在主页上。 主页: 书桌代码:

  • 我正在使用React路由器v4中的路由组件的渲染道具来实现具有Typecript和React的认证路由。 路线: 私人路线: 问题是我想调用道具上的组件集,但是,每次我尝试此操作时,Typescript都会抛出以下错误。 错误的图像 原因似乎是路由的组件类型不是这里所解释的TypeScript期望的组件类型:https://github.com/microsoft/TypeScript/issue

  • 我在索引中创建了新的PublicClientApplication。tsx。现在我想把这个传递给我的withAuthHOC。该应用程序正在使用此HOC。tsx。所以我想在HOC中使用PublicClientApplication(pca道具)。我怎么做? 我的AppProps。tsx: 我的索引。tsx: 我的App.tsx: 我的名字是withAuthHOC。tsx:

  • 我对反应和试图理解如何传递道具很陌生。 首先,我设置了一个Navlink组件,该组件包含子类别属性: ,,都是从json文件中获取的,所以这部分是可以的。 每条路线的定义如下: 所以它呈现一个名为

  • 我正在使用react样板文件,它在route.js中使用异步调用来提供组件。 在“/”路径中加载的组件定义为:

  • 我使用的是dev-express中的react-grid库,库中有一个表组件,我们可以向它传递单元格组件,在CustomCell中,我使用的是Material UI中的菜单 在上述情况下,菜单工作良好, 但是我想要传递道具到这个组件,我尝试了以下操作 在这种情况下菜单不工作,我想知道是否有一个替代的方法来实现第二种情况。