1

我在 Vue 3。我有一个 onclick 方法,它应该修改我的 props 的值,它是一个布尔值,我尝试了几种方法,我设法输入了计算的方法,但是我的 props 的值没有改变

我注册我的数据

data() {
 return {
  showConsommationWindow: false
 }
}

然后我尝试了 3 种方法来更改值,但都没有奏效。首先 :

<submit-button v-on:click="showConsommationWindow = true" />

第二个:(执行警报但数据值不变)

<submit-button v-on:click="showConsommation(true)"/>

  methods: {
    showConsommation(boolValue){
        alert('false')
        this.showConsommationWindow = boolValue;
      }
  }

最后 :

<submit-button v-on:click="showConsommation"/>

  methods: {
    showConsommation(){
      if (!this.showConsommationWindow) {
        alert('false')
        this.showConsommationWindow = true;
        return
      }
      this.showConsommationWindow = false;
    }
  },

我真的不明白为什么我的数据不能变异,谢谢你的帮助。

4

1 回答 1

2

如果 value 来自 props,则表示级将布尔值分配给组件。因此,如果您想更改布尔值,您可能应该这样做:

// in parent

<Component :booleanValue="myBoolean" @changeBooleanValueEvent="changeMyBoolean" />

...

data() {
  return {
    myBoolean: true
  }
}

methods: {
  changeMyBoolean(value) {
    this.myBoolean = value
  }
}

// in component

props: {
  booleanValue: {
    ...
  }
}

methods: {
  showConsommation() {
    this.$emit('changeBooleanValueEvent', false)
  }
}

于 2021-11-21T14:00:59.990 回答