Sie werden müssen entweder die <FormControl />
wiederholen, oder sie definieren einmal als Variable und es zweimal verwenden (evtl. mit einer Funktion). Zum Beispiel:
var formControl = <FormControl />;
return <FormGroup>
{props.dollarsInputGroup ? <InputGroup><InputGroup.Addon>$</InputGroup.Addon>{formControl}</InputGroup> : formControl}
{props.error ? <HelpBlock>{props.error}</HelpBlock> : null}
</FormGroup>;
Oder ... (obwohl ich denke, das viel weniger lesbar ist)
<FormGroup>
{(props.dollarsInputGroup ? ((fc) => <InputGroup><InputGroup.Addon>$</InputGroup.Addon>{fc}</InputGroup>) : ((fc) => fc))(<FormControl />)}
{props.error ? <HelpBlock>{props.error}</HelpBlock> : null}
</FormGroup>
Obwohl könnten Sie eine Definition verwenden anderswo es ein wenig zu helfen:
function maybeWrapWithDollars(wrapWithDollars, wrappedControl) {
if(wrapWithDollars) {
return <InputGroup><InputGroup.Addon>$</InputGroup.Addon>{wrappedControl}</InputGroup>;
}else{
return wrappedControl;
}
}
// …
<FormGroup>
{maybeWrapWithDollars(props.dollarsInputGroup, <FormControl />)}
{props.error ? <HelpBlock>{props.error}</HelpBlock> : null}
</FormGroup>
Fügen Sie einfach das schließende Tag hinzu? – Li357
Das schließende Tag muss hinter dem Eingabefeld stehen, so dass ich es nicht "hinzufügen" kann. Es ist eine separate if/else-Anweisung. – bp123
@ bp123 Bitte zeigen Sie uns den ganzen Code, mit dem Sie es zu tun haben – Li357