Vue组件中的传递响应值

时间:2020-05-26 07:22:49

标签: vue.js axios

我已经调用axios并使用控制台日志显示它是否成功,但是,我想将axios post响应值传递给我的vue组件,并在我的vue组件中显示响应,以使我能够健康)状况。有什么办法吗?我尝试其他部分,但没有运气。请指导我。

main.vue

  methods: {
    onClicked() {
      this.$store
        .dispatch('Clickme', this.data)
        .then(() => {
          alert("Success");
        })
        .catch(() => {
          alert("Error");
        })
    }
  }

clicked.js

        return new Promise((resolve, reject) => {
            clicked(username, password)
                .then(resp => {
                    console.log("---->>>> : ");
                    const data = resp.data.data
                    console.log(username, password);
                    console.log(resp);
                    console.log("statresponse.status : " + resp.data.status);
                    console.log("statresponse.message : " + resp.data.message);

                    console.log("statresponse.inside message : " + resp.data.data.message);
                    // console.log("USER.JS RESPONSE: " + resp.data.status);
                    // console.log("USER.JS RESPONSE: " + resp.data.message);

                    setToken(data.token)
                    commit('SET_TOKEN', data.token)

                    resolve()
                })
                .catch(error => {
                    console.log(error)
                    reject(error)
                })
        })

1 个答案:

答案 0 :(得分:1)

尝试将main.vue更改为:

 onClicked() {
      this.$store
        .dispatch('Clickme', this.data)
        .then((response) => {
          //Do whatever you want with your response
          alert("Success");
        })
        .catch(() => {
          alert("Error");
        })
    }

并将clicked.js更改为:

 resolve(resp.data.data)

这将使诺言解决响应数据。

但是,如果您在商店中/使用vuex发出http请求,则可能要执行的操作是进行突变以将响应置于您的状态-然后从组件映射该状态。