首页 > 解决方案 > v-if 在我的子组件中不起作用

问题描述

每当我的子组件中的 v-if 等于 true 时,我都试图显示一个跨度。任何人都可以建议我做错了什么。目前,我不知道我做错了什么。

子组件

const cardsTemplate = {
    template: 
    `
        <fieldset v-if="show.seach_checkboxes">
            <span>HELLO WORLD</span>
        </fieldset>
    `,
    props: ['js_local'],
    data() {
        return {
            show:{
                search_checkboxes : {
                    type: Boolean,
                    default: true,
                }
            }
        }
    },
    methods :{
        change_boolean : function(reverse_boolean){
            this.show[reverse_boolean] = !this.show[reverse_boolean]
            console.log(this.show)
        },
        show_search_template: function(){
            this.change_boolean('search_checkboxes')
        },
        get_search_template : function(){
            $.post(this.js_local.ajaxurl,
                {action : 'get_search_templates'}
            ).done((data)=>{
                this.name = JSON.parse(data)
            }).fail((error)=>{
                console.log(error)
            })
        },
    }
}

标签: javascriptvue.jsvuejs2vue-component

解决方案


看起来您正在尝试使用data()类型检查,使用相同的方式props。尝试这个:

data() {
    return {
        show: {
            search_checkboxes: true
        }
    }
}

此外,在您的模板 HTML 中,您拼写错误search_checkboxes,它缺少一个“r”。

<fieldset v-if="show.seach_checkboxes">
                         ^^^

推荐阅读