首页 > 解决方案 > 简单比较抛出错误结果Vue

问题描述

我在模态中有 2 个组件。

首先:

              <v-text-field
          label="Limite de faltantes"
          type="number"
          v-model="lim_faltProd"
          ></v-text-field>

第二:

          <v-text-field
          label="Limite de excedentes"
          type="number"
          v-model="lim_excProd"
          ></v-text-field>

我的组件导出:

export default {
  props: ['nombre', 'precio', 'lim_falt', 'lim_exc', 'id'],
  data () {
    return {
      error: '',
      idProd: this.id,
      nombreProd: this.nombre,
      precioProd: this.precio,
      lim_faltProd: this.lim_falt,
      lim_excProd: this.lim_exc
    }
  },
  watch: {
    nombre () {
      this.nombreProd = this.nombre
    },
    precio () {
      this.precioProd = this.precio
    },
    lim_falt () {
      this.lim_faltProd = this.lim_falt
    },
    lim_exc () {
      this.lim_excProd = this.lim_exc
    },
    id () {
      this.idProd = this.id
    }
}

所以当我尝试做这样一个简单的事情时

this.lim_faltProd >= this.lim_excProd

它变得疯狂。

看看这个,我明白了

console.log(this.lim_faltProd) // 20

console.log(this.lim_excProd) // 100

console.log(this.lim_faltProd >= this.lim_excProd) // 抛出 TRUE!!!!



我会展示它: 我有一个功能:

     async registrarProducto () {
this.error = this.lim_faltProd > this.lim_excProd
}

结果:

在此处输入图像描述

标签: javascriptvue.jscomponentsvue-componentvuetify.js

解决方案


您正在比较字符串;"20"大于"100"因为"2"大于"1"(第一个字符)。如果要比较数值,请将它们转换为Number :

this.error = Number(this.lim_faltProd) >= Number(this.lim_excProd)

console.log("20" >= "100")

console.log(Number("20") >= Number("100"))


推荐阅读