首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用组件定义属性?

如何使用组件定义属性?
EN

Stack Overflow用户
提问于 2017-07-24 23:52:39
回答 1查看 95关注 0票数 1

我现在在一个表单中有三个步骤,我想按顺序显示,所以我创建了三个组件--每个步骤一个。

我的app.js文件:

代码语言:javascript
运行
复制
import LocationList from './components/LocationList.vue';
import ChooseTime from './components/ChooseTime.vue';
import ChooseMethod from './components/ChooseMethod.vue';

Vue.component('location-list', LocationList);
Vue.component('choose-time', ChooseTime);
Vue.component('choose-method', ChooseMethod);

let store = {
    isVisible: {
        steps: {
            one: true,
            two: false,
            three: false,
        }
    }
};

new Vue({
    el: '#app-order',

    data: store,

    router
});

现在,当我唯一的路线被调用时,

从‘vue-路由器’导入VueRouter;

代码语言:javascript
运行
复制
let routes = [
    {
        path: '/order',
        component: require('./views/Order.vue')
    }
];

export default new VueRouter({
    routes
});

所有这些组件都被正确加载。问题是,当我尝试一次只做一个v-show时:

Order.vue:

代码语言:javascript
运行
复制
<template>

    // ...

    <location-list v-show="isVisible.steps.one"></location-list>
    <choose-time v-show="isVisible.steps.two"></choose-time>
    <choose-method v-show="isVisible.steps.three"></choose-method>

    // ...

</template>

<script>
</script>

<style>
</style>

我收到的错误消息是:

代码语言:javascript
运行
复制
[Vue warn]: Property or method "isVisible" is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option.

但是当我在Vue的浏览器扩展中检查时,isVisible是在根元素中定义的吗?

正如您所看到的,它位于根元素中,而不是在Order视图中。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-25 00:41:54

在Vue中,子组件不能直接访问在父组件中定义的数据。你得把数据传下来。

我认为,如果您在isVisible中定义了Order.vue,您可能会为自己省去一点麻烦。但是,如果您想将它留在原处,则需要将它传递到组件中。

一个简单的方法是将isVisble定义为Order.vue的一个属性,然后通过您的router-view传递它。

代码语言:javascript
运行
复制
<router-view :is-visible="isVisible"></router-view>

还有其他将道具传递到在路由器文档中定义路由的方法。

我说您将为在isVisible中定义Order.vue省去一些麻烦,因为每当您想要更改您的步骤的值时,就需要在根上执行它,因为您现在已经定义了它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45291773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档