Vue. js - не может установить переключатель по умолчанию - PullRequest
0 голосов
/ 03 февраля 2020

Vue документация говорит, что если начальное значение v-модели не соответствует значениям радиосвязи, оно будет отображаться как невыбранное. Я думаю, что все сделал правильно, но радио Publi c по-прежнему не проверено по умолчанию.

Компонентное радио:

<template>
  <div>
    <input
      type="radio"
      :id="identifier"
      :value="identifier"
      :name="name"
      ref="radio"
      @input="updateRadio()"
      :checked="checked"
    >
    <label :for="identifier">
      <span>{{label}}</span>
    </label>
  </div>
</template>

<script>
export default {
  props: ["value", "name", "identifier", "label", "checked"],

  methods: {
    updateRadio() {
      this.$emit("input", this.$refs.radio.value);
    }
  }
};
</script>

Vue использование

<Radio v-model="share" identifier="public" label="Public" name="share"/>
<Radio v-model="share" identifier="private" label="Private" name="share"/>

export default {
  name: "SignUpForm",
  components: {
    Radio
  },
  data: () => ({
    share: "public"
  })
};

Я смотрел на другие соответствующие вопросы, но не вижу разницы

Fiddle: https://codesandbox.io/s/funny-antonelli-yoblx

1 Ответ

1 голос
/ 03 февраля 2020

в вашем компонентном радио меняет проверенное значение директивы на: checked = "значение"

Радио. vue

<template>
  <div>
    <input
      type="radio"
      :id="identifier"
      :value="identifier"
      :name="name"
      ref="radio"
      @input="updateRadio()"
      :checked="value === identifier"
    >
    <label :for="identifier">
      <span>{{label}}</span>
    </label>
  </div>
</template>

<script>
export default {
  props: ["value", "name", "identifier", "label", "checked"],

  methods: {
    updateRadio() {
      this.$emit("input", this.$refs.radio.value);
    }
  }
};
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...