0
votes

ReactJS- Vérification / décoche de boutons radio ne fonctionne pas

J'ai mon code ci-dessous. Mais les boutons radio ne vérifient pas ou décochent le clic. XXX PRE>

avec un gestionnaire d'événements Handlechange. P>

constructor(props) {
  super(props);
  this.state = {
    error: null,
    isLoaded: false,
    selectedOption: "",
    QuestionAnswer: [],
    counter: 0
  };
}


3 Réponses :


0
votes

Vous devez utiliser un gestionnaire Onchange au lieu d'un onclick Vous pouvez vérifier mon code ici


0 commentaires

0
votes

En écrivant this.state.electedOption === {nom} Vous vérifiez si la chaîne SELECTIONNYOPTIONOPTION est égale à un nouvel objet {nom: nom} qui ne sera jamais vrai. Vérifiez sur la chaîne nom directement à la place.

Vous souhaitez également donner votre fonction au Onchange PROP au lieu du onclick Prop. < / p> xxx


0 commentaires

0
votes

mises à jour dans le snippet ci-dessous

1) p> xxx pré>

à p> xxx pré>

correction Strong> P>

{nom} signifie la première chose destructurant {nom: nom}, vous pouvez en savoir plus sur ES6 Destructuring ICI . Vous essayiez donc de vérifier si la SEELLEMENTOPTION est égale au nom, car il y avait deux bretelles frisées, cela signifie une nouvelle variable. Ce qui est faux, vous pouvez vérifier directement avec selecteyOption === Nom code> p>

exécutez cet extrait de code dans la console et cochez cette p>

const Radio = props => {
  const { name } = props;
  return (
    <div>
      <input
        id={name}
        type="radio"
        name="type"
        value={name}
        checked={this.state.selectedOption === name }
        onClick={this.handleChange}
      />
      <label for={name}>{name}</label>
    </div>
  );
};

handleChange = e => {
  this.setState({
    selectedOption: e.target.value
  });
};

constructor(props) {
  super(props);
  this.state = {
    error: null,
    isLoaded: false,
    selectedOption: "",
    QuestionAnswer: [],
    counter: 0
  };
}


0 commentaires