当前位置: 首页 > 知识库问答 >
问题:

模板vuejs中@click事件的基本异步调用

严稳
2023-03-14

我想设置一个vue.js组件的数据与按钮模板和@单击事件。此事件调用一个方法组件,该组件调用带有promise的异步函数。

当我单击我的按钮时,段落标记html的结果正确显示,但同时它在我的检查器浏览器中生成了一个错误,如下所示:

vue.runtime.esm.js:620[vue warn]:v-on处理程序中的错误:“TypeError:foo.then(…).bind不是函数”

---

很奇怪,为什么会抛出错误,同时做这项工作。。。。

我现在把上下文复制到另一个变量中,并调用这个变量来更改数据组件,但它似乎不建议由esLint过程分析文件。它存在一个特定的规则。

如何工作的基本异步promise更改数据与点击按钮模板上的vuejs?

这是我的组件文件:

<template>

    <div id="testDb">
        <Menu />
        <h2>Test DB operation</h2>
        <b-button @click="createOperation">create Operation</b-button>
        <p style="background-color: white">{{ returnValue1 }}</p>
    </div>

</template>

<script>

import Menu              from "@/components/Menu";
import ConnectionManager from '../service/ConnectionManager'

export default
{
    name: "TestDb",
    components:
    {
        Menu
    },
    data: function()
    {
        return {
            alert: null,
            returnValue1: "beer"
        }
    },
    methods:
    {
        createOperation: function ()
        {
            const connectionManager = new ConnectionManager()
            let foo = connectionManager.insert('operation')
            foo.then(() => {
                this.returnValue1 = "bar"
            }).bind(this)
        },
    }
}

</script>

<style lang="scss" scoped>

    @import './src/assets/scss/main';

</style>

共有2个答案

益和雅
2023-03-14

删除bind'箭头函数已经完成了绑定。

foo.then(() => {
                this.returnValue1 = "bar"
            })

供参考

你以前可以这么做的

foo.then(() => {
                this.returnValue1 = "bar"
            }.bind(this))
侯博裕
2023-03-14

由于您使用的是箭头函数,因此无需添加bind(this)

 foo.then(() => {
                this.returnValue1 = "bar"
            })

或者

 foo.then(function(){
                this.returnValue1 = "bar"
            }.bind(this))
 类似资料:
  • 我有一个UserControl上的事件,我正在听: 具有以下签名: 在以下情况下,如何调用此异步方法: 不阻塞GUI线程 在调用我的异步方法后能够调用 能够在正确的(GUI)线程中调用。 我所尝试的: -- -- --

  • 问题内容: 这可能是一个奇怪的情况,以前没有人曾经历过,但是我是偶然地发布此消息,因为有人知道我不知道的东西。 我正在使用jQuery 2.0.3和AngularJS。 如果我有这样的锚点: 然后它起作用了,当我单击它时,它输出“ click”。但是,当我将其放入包含该属性的模板中时,jQuery突然无法启动。如果我将脚本和锚点放在模板内部,则确实会触发。 使用使用模板的指令也是如此。这很奇怪,并

  • 该事件发生在用户单击CommandBarButton 对象时。 Private Sub CommandBarButton_Click (ByVal Ctrl As CommandBarButton, ByVal CancelDefault As Boolean) Click 事件的语法中包含两个参数,下表中列出了对这两个参数的说明。参数说明CtrlCommandBarButton 类型,必需。指示

  • 问题内容: 我正在尝试 在React元素上模拟,但无法弄清楚为什么它不起作用(触发时它没有反应)。 我只想使用JavaScript发布Facebook评论,但我停留在第一步(执行on 元素)。 我的代码是: 这是我尝试执行的网址: **https://www.facebook.com/plugins/feedback.php …** PS:我对React没有经验,我也不知道在技术上是否可行。这是可

  • 本文向大家介绍spring boot使用thymeleaf为模板的基本步骤介绍,包括了spring boot使用thymeleaf为模板的基本步骤介绍的使用技巧和注意事项,需要的朋友参考一下 前言 在开发过程中,使用模板引擎是很有必要的。jsp已经明显跟不上时代发展了,freemarker用的够够的?换thymeleaf试试吧。 springboot官方推荐的是freemarker和thymele

  • 问题内容: 我是开玩笑/酶的新手,正尝试模拟对返回Promise的aync函数的调用,该调用是在componentDidMount方法的react组件内进行的。 该测试正在尝试测试componentDidMount将Promise返回的数组设置为状态。 我遇到的问题是,在将数组添加到状态之前,测试已完成并通过。我正在尝试使用“完成”回调来使测试等待,直到承诺解决为止,但这似乎不起作用。 我尝试将E