Vue типы входных данных формы не перерисовываются при изменении состояния и вызове метода - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть следующее html:

<b-row no-gutters v-for="(exp, index) in currentExps" :key="index">
  <Field :id="exp.exp_id" name="Status" type="text" disabled />
  <Field :id="exp.exp_id" name="ELN" type="text" :disabled="submitted(exp)" />
  <Field :id="exp.exp_id" name="Solvent" :type="type(exp)" :disabled="submitted(exp)
</b-row>

Каждое «Поле» - это пользовательский компонент, который отображает ввод данных другого типа в зависимости от значения пропущенного ему свойства prop. Для некоторых из этих компонентов «Поле» я определяю тип и следует ли отключить поле или нет с помощью нескольких методов, как показано:

submitted(exp) {
      return exp.Status === "Submitted";
    },
    type(exp, field) {
      console.log(field);

      if (exp.Status === "Submitted") {
        console.log("it is true");
        return "text";
      } else {
        return "select";
      }
    }

Когда я нажимаю кнопку, exp.Status преобразуется в "Отправлено". Когда это происходит, запускаются оба метода - все поля преобразуются в отключенные. Однако, когда я затем переключаю «Растворитель» с выбранного типа поля на тип текстового поля, этого не происходит. Это как если бы приложение должно было повторно выполнить рендеринг, так как посредством горячей перезагрузки наблюдаются желаемые изменения.

Мне было интересно, может ли кто-нибудь объяснить это поведение? По существу, отключенное состояние полей обновляется, но тип не изменяется при изменении состояния.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...