在Vue.js中执行分派操作后调用$ emit

时间:2019-10-09 14:14:32

标签: vue.js vuejs2 vue-component vuex

我有一个父级组件:

<template>
    <div class="w-full">
        <div class="card-body">
            <city-edit-form :form="form" :resource="resource" @save_resource="func">
            </city-edit-form>
        </div>
    </div>
</template>

<script>
export default {
    methods: {
        func() {
            console.log("test");
        }
    }
};
</script>

和子组件:

<template>
  <div>
    <form action="#" method="POST" @submit.prevent="submit" v-else>
        <button type="submit" class="btn-green">Save</button>
    </form>
  </div>
</template>

<script>
import { UPDATE_RESOURCE } from "../../../Stores/action-types";

export default {
    props: {
        form: { required: true },
        resource: { required: true }
    },
    methods: {
        submit() {
            this.$store
                .dispatch(`city/${UPDATE_RESOURCE}`, this.form)
                .then(() => this.$emit("save_resource"));
        }
    }
};
</script>

动作是:

[UPDATE_RESOURCE]({ commit, state }, form) {
    commit(SET_LOADING, true);
    return ResourceService.update(state.resource.id, form)
            .then(({ data }) => {
                commit(SET_RESOURCE, data);
            })
            .catch(errors => {
                commit(SET_ERRORS, errors.response.data);
            })
            .finally(() => commit(SET_LOADING, false));
    });
},

我提交表单时,动作已分派,但未发出任何动作。

控制台未登录。我在哪里弄错了?

更新

当我检查Vue工具栏的“事件”选项卡时,看到以下内容:

enter image description here

我认为事件已被发出,但是console.log在控制台中什么都没有记录!如此有线!

2 个答案:

答案 0 :(得分:0)

在触发解决或拒绝操作时使用return关键字

var nullableString: String? = null

答案 1 :(得分:0)

您可以使用import gym from gym import spaces class CustomEnv(gym.Env): def __init__(self): self.action_space = spaces.Discrete(3) self.observation_space = spaces.Tuple((spaces.Discrete(16), spaces.Discrete(2), spaces.Box(0,20000,shape=(1,)), spaces.Box(0,1000,shape=(1,))) ...

而不是发出事件(这没什么不对)
ParsePosition

这是假设您已经做过吸气剂