Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript VUEJ从组件向主vue实例发出单击_Javascript_Vue.js - Fatal编程技术网

Javascript VUEJ从组件向主vue实例发出单击

Javascript VUEJ从组件向主vue实例发出单击,javascript,vue.js,Javascript,Vue.js,我试图从我的组件向我的主vue实例发出一个单击事件,但我能够解决它。目前,我的控制台中没有收到任何消息,因此它不会转到该函数,因此到目前为止,代码如下所示: // component LeftUserListTileComponent <template> <v-list-tile @click="$emit('toggleLeftUserPanel')"> <v-list-tile-action> <v-

我试图从我的组件向我的主vue实例发出一个单击事件,但我能够解决它。目前,我的控制台中没有收到任何消息,因此它不会转到该函数,因此到目前为止,代码如下所示:

// component LeftUserListTileComponent
<template>
    <v-list-tile @click="$emit('toggleLeftUserPanel')">
        <v-list-tile-action>
            <v-icon>exit_to_app</v-icon>
        </v-list-tile-action>
        <v-list-tile-content>
            <v-list-tile-title>User Settings</v-list-tile-title>
        </v-list-tile-content>
    </v-list-tile>
</template>

<script>
    export default {
        data () {
            return {
            }
        },
        methods:{
            toggleLeftUserPanel () {
                // what to do here?
            }
    };
</script>

Vue.component('left-user-list-tile', require('./components/LeftUserListTileComponent.vue'));
Vue.component('left-user-panel', require('./components/LeftUserPanelComponent.vue'));

const app = new Vue({
    el: '#app',

    props: {
      source: String
    },

    data: {
        leftUserPanel: null
    },

    toggleLeftUserPanel () {
        console.log("In toggleLeftUserPanel func");
        this.leftUserPanel != this.leftUserPanel;
    }


});
//组件LeftUserListTileComponent
退出到应用程序
用户设置
导出默认值{
数据(){
返回{
}
},
方法:{
ToggleftUserPanel(){
//在这里做什么?
}
};
组件('left-user-list-tile',require('./components/LeftUserListTileComponent.Vue');
组件('left-user-panel',require('./components/LeftUserPanelComponent.Vue');
const app=新的Vue({
el:“#应用程序”,
道具:{
资料来源:String
},
数据:{
leftUserPanel:null
},
ToggleftUserPanel(){
log(“在toggleftuserpanel func中”);
this.leftUserPanel!=this.leftUserPanel;
}
});

如果您在单击时直接发出事件,则在第一个
切换leftuserpanel()
中,您不应执行更多操作

为了工作,当从其子元素接收到toggleLeftUserPanel
事件时,您应该声明您期望从
父元素中得到什么,例如:

<toggle-left-user-panel @toggleLeftUserPanel='togglePanel' />
这样,将启用父子通信,并且父级应对子级
emit
事件作出反应


希望它有帮助!

如果您想发出事件,您需要在组件内部设置它。如果您只想在用户单击标题时获取单击,您应该能够使用@click.native:

<v-list-tile @click.native="console.log('Title is clicked!')">
...

...

您实际在哪里监听发出的事件?在@click…上单击后,我正在尝试监听它,请查看此内容以了解如何监听发出的值:@Stephan-v好的,我更改了代码,但如何更改组件emit中的值leftUserPanel?您是否解决了问题?它可以工作?如果可以,请标记一个an回答为有效,以便标记为已解决并保持S.O清洁。如果没有,请尝试更新问题,我们将尽力帮助您
<v-list-tile @click.native="console.log('Title is clicked!')">
...