簡體   English   中英

如何根據Vue中的條件正確禁用按鈕

[英]How to correctly disable the button based on condition in Vue

我正在嘗試比較初始 object 和更新的 object 特定值,因此如果它們是相同的按鈕,則應禁用它們。 但是,即使更改按鈕被禁用,它似乎也是如此:

  setDisabled(){
  return this.selectedItem.color === this.selectedItemInitial.color &&
  this.selectedItem.price === this.selectedItemInitial.price
  },

出了什么問題,為什么它沒有改變 boolean 值?

您定義的 function setDisabled在組件渲染時執行一次,但在組件中的數據發生更改時不執行。

您應該將setDisabled (為了清楚起見將其重命名為buttonDisabled )移動到組件的計算屬性中。 這樣,當組件中的dataprops更新時,它將得到更新:

computed: {
  buttonDisabled: function(){
        return this.selectedItem.color === this.selectedItemInitial.color && this.selectedItem.price === this.selectedItemInitial.price
   }
}

並在 html 中像這樣使用它:

<!-- No parenthesis when using a computed property -->
<button :disabled="buttonDisabled"> ACTION </button>

您沒有展示如何實例化組件數據,因此很難看出是否存在邏輯錯誤。

一般來說,該方法有效,如果像這樣使用:

<button :disabled="setDisabled()"> ACTION </button>

另外,如果我建議您將其更改為計算屬性:

computed: {
  setDisabled: function(){
        //logic here
   }
}

您也可以在模板中完成所有操作。 取決於變量的設置方式。

<button :disabled="selectedItem.color === selectedItemInitial.color">Click</button>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM