Задать вопрос
KaSeo
@KaSeo
Front-end разработчик

Как влиять на props дочернего компонента из родителя?

Здравствуйте.

У меня есть два компонента, объявленные глобально:
Первый: выбор страны
<f-select
        :options="countries"
        name="country"
        placeholder="Выберите страну"
        @change-option="getOption"
/>

Второй: выбор города
<f-select
        disabled
        :options="cities"
        name="city"
        placeholder="Выберите город"
        @change-option="getOption"
        @status="compStatus"
/>

У второго есть props "disabled".

Как управлять вторым компонентом в зависимости от выбранного значения в первом?
Как сделать, например, если в первом компоненте выбираю какую-нибудь страну, а во втором компоненте props disabled становится false?
  • Вопрос задан
  • 199 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
@mShpakov
Через $emit из первого селекта выбрасывать некоторое значение и передавать его во второй. Способ передачи и что передавать - дело ваше. По сути единственный способ передать значение "на верх" это $emit
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега Vue.js
Реализуем поддержку директивы v-model компонентом f-select - он должен принимать параметр value, который будет определять значение элемента <select> внутри компонента, а при выборе пользователем какого-то пункта выбранное значение должно отправляться родителю:

<select
  :value="value"
  @input="$emit('input', $event.target.value)"
  ...

Добавим в родительский компонент свойство country, и свяжем его c экземпляром компонента, который ответственен за выбор страны:

<f-select
  v-model="country"
  ...

Теперь для экземпляра компонента, ответственного за выбор города, можно значение параметра disabled поставить в зависимость от выбора страны:

<f-select
  :disabled="!country"
  ...

jsfiddle.net/4ugta2v5
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы