Vue父组件未看到子组件事件

时间:2020-10-15 20:51:48

标签: javascript vue.js bootstrap-vue

只是尝试接收一个事件,该事件随后会作为道具传递给另一个组件。这是子组件;

    <b-form-group label="Stacked button style radios">
        <b-form-radio-group
            id="btn-radios-3"
            v-model="selected"
            :options="options"
            buttons
            stacked
            @click="filterPusher(selected)"
            name="radio-btn-stacked"
        ></b-form-radio-group>
    </b-form-group>

及其推送的方法(更改事件arg无效);

methods: {
        filterPusher(event) {
            return this.$emit("filter-change", event);
        },
    },

现在在父组件中,我已经确保从子组件本身进行调用,可能值得一提的是我已经将该子组件注册为全局组件,并且我不知道这会如何影响事情,但这是父母(我也尝试过v-on和@来确定);

<filterProducts
    v-on:filter-change="pushFilter($event)"
></filterProducts>

该方法将触发应更改的数据;

    data() {
        return {
            theFilter: "",
        }
    },
    methods: {
        pushFilter(changed) {
            console.log(changed)
            return this.theFilter = changed
        }
    },

我还尝试过像这样更改父级中的参数;

<filterProducts
   v-on:filter-change="pushFilter"
></filterProducts>

methods: {
    pushFilter($event) {
        console.log($event)
        return this.theFilter = $event
    }
},

在这里尝试计算方法时,我抛出了这样的错误:我的自定义事件过滤器更改具有无效的处理程序,所以我又回到了方法。

我将重申此子组件filterProducts是一个已在使用的全局组件,并且我还没有看到有关这如何影响从“子”全局组件向其假定的父组件发出自定义事件的参考,所以我有感觉可能是这样,但根本没有发现任何东西。

我已经检查过vitter devtools中是否确实存在发射并且它发送了正确的选择器信息,但是父级没有看到该事件。

0 个答案:

没有答案