V-if не срабатывает, Vuejs - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть один родительский компонент с 2 дочерними элементами (один и тот же дочерний элемент, но вызываемый дважды).

//parent
<cards-box :allCards="allCards" />
<cards-box :allCards="selectedCards" />

Если я выбираю карту из первого дочернего элемента, мне нужно инициировать действие во втором. Но из того, что я увидел, не имеет значения, если дочерний компонент одинаков, у каждого дочернего элемента есть свои переменные. Поэтому я должен передать его от одного к другому (даже если это один и тот же компонент)

<div class="removed" v-if="selectedCard" @click="removeCard(card.id)">
    <a href="#game-board" >Replace</a>
</div> //This will be trigger in one child
<div class="selected" v-if="!selectedCard" @click="addCardToBoardGame(card.id)">
    <a href="#game-board" >Select</a>
</div> //This one is the one that triggers the event


...methods
    addCardToBoardGame(value){ //the value is changed here
        this.selectedCard = value;
    },
    removeCard(id){
        this.removedCard = id;
        //selectedCard is null here
    }
...

Кроме того, я попытался вызвать eventBus при изменении значения и для второго тега, чтобы передать значение, чтобы получить измененное значение, но не работает.

Обновление, решено!

Я нашел решение (странное). Я испускаю eventBus из дочернего компонента, и я слушаю оттуда, и работает. Но я открыт для лучших решений.

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