ich ein paar Ansätze nutzen, um die Render-Methode von komplexeren Komponenten zu bereinigen.
1) Verwenden Sie eine Variable. Bevor Sie sich tatsächlich im JSX-Teil (der Rückgabe) befinden, können Sie die Flexibilität von Raw JS nutzen, um Variablen zu erstellen. So nehmen Sie Ihr Beispiel ...
function render() {
let body;
if (x === "Let's go") {
body = <Go />
} else {
body = <Hold on />;
}
return (
<div>
{body}
</div>
);
}
Beachten Sie, dass die oberste Ebene zu verpackenden muss, setzen Sie einfach ein extra div drin.
2) Verwenden Sie eine Funktion. Dieses Beispiel ist wahrscheinlich ein wenig zu einfach, aber Sie bekommen die Idee ..
renderBody() {
let body;
if (x === "Let's go") {
body = <Go />
} else {
body = <Hold on />;
}
return (
{body}
)
}
render() {
return (
<div>
{renderBody()}
</div>
)
}
3) Verwenden Sie ein Array (wirklich eine Teilmenge von # 1), aber oft finde ich Szenarien, in denen manchmal brauche ich 1 Element zurückzukehren aber manchmal muss ich eine variable Anzahl von Elementen zurückgeben. Ich werde ein Array an der Spitze der Funktion erstellen und dann Elemente auf das Array schieben/verschieben. Beachten Sie, dass Sie jedes Mal, wenn Sie ein Array erstellen, einen Schlüssel für jedes Element bereitstellen müssen, damit React es ordnungsgemäß aktualisieren kann.
let els = [
<div key="always">Always here</div>
];
if (foo) {
els.push(<div key="ifFoo">Conditionally Here</div>)
}
Und dann verwenden Sie einfach die Variable {els} in Ihrem Haupt-JSX.
4) Return null, wenn Sie nicht wollen, etwas
Danke für die detaillierte Erklärung. Ich finde, dass wenn meine Komponenten größer werden, es schwierig wird, mit allen geschweiften Klammern zu debuggen. Ich werde diese Ideen sicherlich verwenden, wenn ich meinen Code umgestalte – Ajit
Hoffe es hilft! Bitte markieren Sie als akzeptierte Antwort, wenn Sie damit zufrieden sind. –