如何检测实际值的变化而不仅仅是OnChange nuxt vuetify

问题描述 投票:0回答:1

由于]的结果>

export default {
  name: "Details",
  async asyncData({ redirect, params, store }) {
    if (
      !store

我将返回其中一个为其中的一些值

  return {
    camera: c,
    thumbnail_url: thumbnail_url,

摄像机,然后在我填充Vuetify对话框的表单字段中,文本字段输入

例如

<v-dialog v-model="dialog" max-width="600px">
  <v-card>
    <v-card-text>
      <v-layout class="model-container">
        <v-row>
          <v-col cols="12" lg="7" md="7" sm="12" xs="12">
            <v-text-field
              v-model="camera.name"
              class="caption bottom-padding"
              required
            >
              <template v-slot:label>
                <div class="caption">
                  Name
                </div>
              </template>
            </v-text-field> 

我的问题是,我有一个按钮为

      <v-btn color="primary" text @click="updateCamera">
        Save
      </v-btn>

我只想禁用false,仅当this.camera发生实际更改时,在updateCamera方法中,我可以将更新后的值用作

async updateCamera() {
  let payload = {
    name: this.camera.name,

但是我想启用或禁用更改发生时的按钮,

我曾尝试@input,也曾尝试观看camera对象

            <v-text-field
              v-model="camera.name"
              class="caption bottom-padding"
              required
              @input="up($event, camera)"
            >

这样,我试图获取有关事件的一些信息,例如它是哪个文本字段,以便进行比较,但是在up方法中,它仅传递输入值。

在手表中

camera: function() {
  this.$nextTick(() => {
    console.log(this.camera)
  })
}
camera: {
  handler: function(val) {
    this.$nextTick(() => {
      console.log(val)
    })
    /* ... */
  },
  immediate: true
}

我已经尝试过,但是没有用。

当然,我们可以启用或禁用更改按钮,但不能仅在用户放置A然后将其删除的情况下启用或禁用,而不能进行此类更改。任何帮助都会很棒

更新:

即使使用此后

camera: {
  handler: function(newValue) {
    if (newValue === this.dumpyCamera) {
      console.log(this.dumpyCamera)
      console.log(newValue)
      console.log("here")
      this.updateButton = true
    } else {
      this.updateButton = false
    }
  },
  deep: true
}

新值和旧值都相同。

我已尝试添加新变量dumyCamera,并且在安装时我已将this.camera值分配给this.dumyCamera,但是当摄像机发生更改时,它也会同时更改this.dumyCamera吗?为什么会这样?

由于导出为默认值{名称:“ Details”,异步asyncData({redirect,params,store}){if(!store我正在返回一些值,其中一个是return {camera:...

vue.js vuetify.js nuxt.js
1个回答
0
投票

您应该能够通过使用watcher来识别对此相机所做的任何更改

© www.soinside.com 2019 - 2024. All rights reserved.