Ich bin neu zu Reagieren und fehlt wahrscheinlich die richtige Terminologie, um eine Lösung für mein Problem zu finden. Es kann nicht so schwer sein.Change checked Attribut der kontrollierten Checkbox (React)
Ich baue eine einfache App, die eine Reihe von Fragen anzeigt, eine Frage nach der anderen. Nach Beantwortung einer Frage wird die nächste Frage angezeigt.
Ich habe eine Komponente Question
, die 3 Kontrollkästchen darstellt, jedes Kontrollkästchen stellt eine mögliche answer
auf die Frage.
{this.props.question.answers.map((answer, index) => {
return (
<li className="Question__answer" key={answer.id}>
<label className="Question__answer-label">
<input
className="Question__answer-checkbox"
type="checkbox"
value={index}
onChange={this.props.setAnswer}
defaultChecked={false} />
{answer.answer}
</label>
</li>
...
<button className="Question__next" type="button" onClick={this.props.onNext} disabled={this.props.isDisabled}>
Next question
</button>
)
})}
In meinem Hauptkomponente Quiz
Ich nenne die Komponente wie folgt aus:
<Question step={this.state.step} question={this.state.questions[this.state.step]} setAnswer={this.setAnswer} onNext={this.onNext} isDisabled={this.isDisabled()} />
onNext
ist meine Funktion, die this.state.step
um erhöht die nächste Frage angezeigt:
onNext(event) {
this.setState({step: this.state.step + 1});
}
Alles funktioniert gut, außer: Wenn die nächste Frage angezeigt wird, möchte ich alle 3 Checkbo xes wieder deaktiviert werden. Momentan erinnern sie sich an ihren überprüften Zustand von der zuvor beantworteten Frage.
Mögliches Duplikat von [So rufen Sie eine Funktion in der übergeordneten Komponente von tief verschachtelten untergeordneten Komponenten mit redux auf] (http://stackoverflow.com/questions/37091627/how-to-invoke-a-function-in-parent- Komponente-von-tief-verschachtelte-Kind-Komponente) –