Ich möchte in der Lage sein, einen bestimmten HTML-Abschnitt zu rendern, wenn die Bedingung wahr ist. Ich bin neugierig auf die korrekte Art, einen bedingten if-Ausdruck innerhalb einer react
render() zu erstellen.Wie Sie einen bedingten Ausdruck (if) in einem React render() korrekt einrichten
Ich schaute online nach und fand eine Möglichkeit, dies mit einem Inline-Ausdruck zu tun, um zu überprüfen, ob der Wert wahr ist, wenn ja, dann wird das verbleibende Element gerendert.
Ich habe auch eine andere Möglichkeit, um Variablen für die HTML-Rendering zu erstellen.
Frage:
Ich war nicht in der Lage, beide td
Tags als einen für den Zustand zu wickeln. Es sieht so aus, als müsste dies per td
Tag gemacht werden.
Gibt es eine Möglichkeit, dies um beide Tags herum zu tun oder muss ein anderes Element um sie herum eingerichtet werden?
Ich dachte, dies könnte auch mit einer =>
Funktion möglicherweise eingerichtet werden.
-Code für die Inline() Ausdruck machen:
render() {
// get the data from the JSON entity for each attribute
var tdsForObject = this.props.jsonAttributes.map(jsonAttribute =>
<td>{this.props.object.entity[jsonAttribute]}</td>
);
return (
<tbody>
<tr>
{tdsForObject}
{this.props.objectTypeEditable &&
<td>
<UpdateDialog object={this.props.object}
objectName={this.props.objectName}
attributes={this.props.attributes}
onUpdate={this.props.onUpdate}/>
</td>
}
{this.props.objectTypeEditable &&
<td>
<button onClick={this.handleDelete}>Delete</button>
</td>
}
</tr>
</tbody>
)
}
Code Schaltflächen erstellen außerhalb der Render()
render() {
// get the data from the JSON entity for each attribute
var tdsForObject = this.props.jsonAttributes.map(jsonAttribute =>
<td>{this.props.object.entity[jsonAttribute]}</td>
);
var updateButton;
var deleteButton;
// if the object can be edited create the update and delete buttons
if (this.props.objectTypeEditable) {
updateButton = (
<td>
<UpdateDialog object={this.props.object}
objectName={this.props.objectName}
attributes={this.props.attributes}
onUpdate={this.props.onUpdate}/>
</td>
);
deleteButton = (
<td>
<button onClick={this.handleDelete}>Delete</button>
</td>
);
}
return (
<tbody>
<tr>
{tdsForObject}
{updateButton}
{deleteButton}
</tr>
</tbody>
)
}
@Raphael_Parent Ja, ich habe die ES6-Pfeilfunktion wie auf der React-Website gesehen. Ich habe diese Methode ausprobiert und es funktioniert auch. Ich bin neu zu reagieren und von all den 3 verschiedenen Arten, die oben diskutiert wurden, finde ich den, der die tds in einer Variablen einrichtet, die am einfachsten zu lesen ist. Ich bin neu zu reagieren, also bin ich mir nicht sicher. Wäre dies als eine richtige Lösung gedacht oder sollte dies versucht werden, in den Rückkehrkörper zu stoßen? Ich finde es viel einfacher, Setup mit der If-Anweisung und Variablendeklaration vor der Rückkehr zu lesen, wie im zweiten Codeabschnitt oben gezeigt. – ALM
@ALM Es ist eine richtige Lösung für Ihre Frage. Du hast gefragt: "Gibt es eine Möglichkeit, dies um beide Tags herum zu tun oder musst du ein anderes Element um sie herum einrichten?" Und ich antwortete :). Es gibt einen Weg, es funktioniert, es ist ein bisschen weniger lesbar. Es liegt an dir! Ich hätte nichts dagegen, das eine oder andere zu sehen. –
@Raphael_Parent Ich verstehe Ihre Antwort ist die Frage, ich kann es richtig markieren. Ich wollte wissen, ob eine dieser 3 Lösungen besser ist als eine andere? Meine bevorzugte Lösung ist die, die ich in meinem zweiten Codebeispiel angegeben habe, und ich möchte nur sicherstellen, dass es in Ordnung ist, um so zu reagieren, wie ich neu bin. Danke – ALM