Mam komponent React zdefiniowane w JSX która zwraca komórkę przy użyciu td
lub th
, np:JSX z tagiem HTML zmiennej
if(myType === 'header') {
return (
<th {...myProps}>
<div className="some-class">some content</div>
</th>
);
}
return (
<td {...myProps}>
<div className="some-class">some content</div>
</td>
);
możliwe byłoby napisać JSX w taki sposób, czy tag HTML pochodzi ze zmiennej? Jak:
let myTag = myType === "header" ? 'th' : 'td';
return (
<{myTag} {...myProps}>
<div className="some-class">some content</div>
</{myTag}>
);
Powyższy kod zwróci błąd „nieoczekiwany znak” wskazując na {
. Używam webpacka z wtyczką babel do kompilacji JSX.
Eh, dzięki za cynk. Będzie działać bez obawy o stan, po prostu przypisz nazwę zmiennej do zmiennej i użyj jej wewnątrz JSX, np .: 'let tx = 'td'; return ( ... 'itd. –
Amiramix
W rzeczywistości nazwa zmiennej musi zaczynać się od dużej litery, w przeciwnym razie reaguje traktując ją jako znacznik HTML i wyświetla' tx' zamiast wartości Zmienna Jeśli nazwa zmiennej to 'Tx', to poprawnie renderuje jej zawartość (np.' td' lub 'th'). – Amiramix