0
votes

Pourquoi mon booléen est-il toujours vrai en la transmettant comme valeur à un composant radio?

Donc, j'apprends Vue et j'ai passé du temps à traverser les documents et n'avez pas vu la réponse qui résout ma question. Beaucoup de cela est dû à la nomenclature entre l'utilisation de la CLI (que je suis) et non.

J'essaie de le faire afin que lorsque un bouton radio est cliqué, il affiche un div et lorsque l'autre est cliqué, il affiche l'autre. Voici ce que j'ai. P>

Modèle: P>

display: none;


1 commentaires

Cela peut être un détail, mais je suggère d'utiliser V-si et v-else au lieu de v-show dans votre cas. De cette façon, si vous devez modifier les conditions, vous n'aurez qu'une ligne à modifier au lieu de 2, et si la condition devient longue, le code sera plus simple.


3 Réponses :


0
votes

Il y a deux problèmes autant que je puisse voir ici:

dans un composant, la touche Data ​​CODE> doit être une fonction et la valeur de la touche code> sélectionnée Dans l'objet renvoyé par la fonction code> code> doit être une valeur booléenne réelle true code> ou false code> (qui sera la valeur initiale) p> xxx pré>

Par défaut, les valeurs de modèle V sont traitées comme des chaînes afin que votre true code> et false code> sont en réalité les chaînes "vrai " code> et " faux " code> qui sont à la fois en vérité. Modification de votre code de modèle en ci-dessous (ou à l'aide d'un numéro ou d'une valeur de chaîne à la place), corrigez-le P>

<div v-show="selected === 'true'" id="ta-multDays">
    <textarea  rows="10" cols="80" name="multDays" type="text" />
</div> 


0 commentaires

2
votes

Le problème est que la valeur de sélectionné code> est une chaîne, alors que vous vous attendez à ce qu'elle soit booléenne.

Le watcher suivant: p>

selected changed to true which is a string 
selected changed to false which is a string


1 commentaires

Merci, je l'ai eu un peu avant de poster l'aide mais merci. Je pensais que l'utilisation de la liaison avec le type le convertit, mais après avoir joué avec elle, j'ai vu qu'il s'agissait d'une ficelle. Merci beaucoup de votre aide !!!



0
votes

Je l'ai résolu en le modifiant à partir d'un "V-show" à "V-Si" PRE> XXX PRE>

puis le DIV à afficher comme suit: P>

<div v-if="selected === 'multipleDays'" id="ta-multDays">
    <textarea  rows="10" cols="80" name="" type="text" />
</div>

<div v-if="selected === 'onlyOneDay'" id="i-oneDay">
    <input type="text" name="">
</div>


0 commentaires