v-if не работает при добавлении в функцию return.Зачем? - PullRequest
0 голосов
/ 19 мая 2019

v-if="css_max_count[i] == true работает нормально, но если я добавлю return, то этот код не работает. Любые причины?

короткий код:

<div class="ui form" v-for="(im, i) in sorted_listim"> 
    <div  class="ui left pointing red basic label" v-if="css_max_count[i] == true">
        {{im.count_buy}}
    </div>

    <div @click="add_dar(i)" class="ui right small basic green button" ><h3>+</h3>
    </div>

</div>


add_dar(i) {
    if (im.count_buy < count) {
        this.css_max_count[i] = true
        // return - ??????
    } else this.css_max_count[i] = false
}

1 Ответ

0 голосов
/ 19 мая 2019

Когда вы добавляете возврат к выражению, возникает ошибка, поскольку он генерирует недопустимый javascript.
Способ работы vue if vue заключается в том, что он принимает выражение, заключенное в новый объект Function, который содержитсвой собственный возврат.

function checkExpression (exp: string, text: string, warn: Function, range?: Range) {
  try {
    new Function(`return ${exp}`)
  }
  ...
  ...

Разница между ними составляет return css_max_count[i] == true против return return css_max_count[i] == true.

Добавление return делает недействительной функцию и выдается ошибка.Вы должны были видеть ошибку в своей консоли, когда это произошло, потому что она предупреждена вне зависимости от среды.

См. checkExpression в детекторе ошибок vue для источника.

...