Ich habe zwei checkbox
in einem <form>
. Der <form>
ist eine onChange={this.checkBoxOnChange}
zugewiesen, die checkBoxOnChange(event){..}
Funktion bei jeder Änderung in der Form auslöst. Ich versuche, (Log) den Status (dh ob sie überprüft werden oder nicht). Also habe ich anfangs dort Wert als false
genommen, da sie nicht überprüft werden dann bei jedem Ereignis versuche ich dort den Wert zu ändern (dh wenn der falsche & umgekehrt ist).Ternärer Operator (Inline, wenn ohne)
Auf folgenden this SO poste ich dies versucht:
(event.target.value=='BILLDED') && billed=(!billed)
Auf diese Weise erhalte ich:
Syntax error: Invalid left-hand side in assignment expression
Dann habe ich versucht, dies:
(event.target.value=='BILLDED') ? (billed=(!billed)) : null
aber es gibt mir BILLED:true
auf jedem onChange
(wenn auf BILLEDgeklickt wird)
Dies ist Code für Checkbox innerhalb Methode machen:
render() {
return (
<div>
<form onChange={this.checkBoxOnChange}>
<input type="checkbox" name="invoicestatus" value="BILLDED" />BILLDED<br />
<input type="checkbox" name="invoicestatus" value="PENDING" />PENDING<br />
</form>
<ListData data={this.state.data}/>
</div>
);
}
Dies ist die checkBoxOnChange()
Funktion innerhalb derselben Klasse (Component):
checkBoxOnChange(event){
var billed=false;
var pending=false;
// (event.target.value=='BILLDED') ? (billed=(!billed)) : null;
(event.target.value=='BILLDED') && billed=(!billed)
// (event.target.value=='PENDING') ? pending=(!pending) : null;
console.log("BILLDED:"+billed+" PENDING:"+pending);
}
- Was mit dem Code falsch?
- Kann ich keine Inline-Anweisung für dieses Szenario verwenden?
- Gibt es einen besseren, prägnanteren Ansatz?
Verstanden. Können Sie mir bitte sagen, wo wäre der ideale Ort, um sie dann zu initialisieren? Innerhalb 'this.state()' in 'Konstruktor' vielleicht dann? Da in React keine globale Variable vorgesehen ist. – BlackBeard
Ja, es Teil des Staates zu machen klingt nach einer guten Idee. Es hängt natürlich auch davon ab, was Sie mit dem Wert machen wollen, außer natürlich, es zu protokollieren. – Bergi