【问题标题】:Vue.js how to use tabs to load different componentsVue.js 如何使用选项卡加载不同的组件
【发布时间】:2020-07-28 11:16:20
【问题描述】:

我正在尝试使用选项卡上的单击事件来设置 data() 内变量的值,然后在我的组件上的 if 语句中使用此变量来测试该值并在为 true 时显示组件。但这不起作用,我没有收到任何错误。我假设当标签上的点击事件触发时变量的值没有被设置。这种方法不能实现功能吗?

<template>
    <div id="settings_page" class="page_body">
        <h1>Settings</h1>

        <div id="user_info" v-if="user">
            <div id="tabs">
                <div v-on:click="selected_tab == 'account'">Account Details</div>
                <div v-on:click="selected_tab == 'divisions'">Divisions</div>
                <div v-on:click="selected_tab == 'users'">Users</div>
                <div v-on:click="selected_tab == 'columns'">Columns</div>
            </div>

            <div class="content">
                <div v-if="selected_tab == 'account'">
                    <h2>Profile</h2>
                </div>

                <div v-if="selected_tab == 'divisions'">
                    divisions
                </div>

                <div v-if="selected_tab == 'users'">
                    users
                </div>

                <div v-if="selected_tab == 'columns'">
                    columns
                </div>
            </div>
        </div>
    </div>
</template>

<script>
    import { mapActions, mapGetters } from 'vuex';

    export default {
        data() {
            return {
                selected_tab: 'account'
            }
        },
        computed:mapGetters(['user']),
        methods: {
            ...mapActions(['getProfile'])
        },
        created() {
            this.getProfile();
        }
    }
</script>

【问题讨论】:

标签: javascript vue.js vuejs2 vue-component vuex


【解决方案1】:

您正在点击事件处理程序中进行比较:

v-on:click="selected_tab == 'account'"

你应该使用这样的赋值:

v-on:click="selected_tab = 'account'"

【讨论】:

    猜你喜欢
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多