Mam ciąg znaków, który zawiera nazwę klasy (pochodzi z pliku json). Ten ciąg informuje moją klasę szablonów, który układ/szablon użyć dla danych (również w json). Problem polega na tym, że mój układ nie wyświetla się.Utwórz instancję klasy React z ciągu znaków
Home.jsx:
//a template or layout.
var Home = React.createClass({
render() {
return (
<div>Home layout</div>
)
}
});
Template.jsx:
var Template = React.createClass({
render: function() {
var Tag = this.props.template; //this is the name of the class eg. 'Home'
return (
<Tag />
);
}
});
ja nie otrzymuję żadnych błędów, ale też nie widzę układ/Home klasie. Sprawdziłem props.template i rejestruje poprawne informacje. Ponadto widzę element home w DOM. Jednak wygląda to tak:
<div id='template-holder>
<home></home>
</div>
jeśli zmienię następujący wiersz na:
var Tag = Home;
//this works but it's not dynamic!
Wszelkie pomysły, w jaki sposób mogę rozwiązać ten problem? Jestem pewien, że to albo prosta naprawa, albo robię coś głupiego. Pomoc byłaby doceniona. Przepraszamy, jeśli zostało to już zadane (nie mogłem go znaleźć).
Dzięki Ewan
Dzięki, miałem nadzieję uniknąć map/linków w kodzie. Chciałbym móc dodawać szablony bez zmiany głównej podstawy kodu. Czy to nie jest możliwe? – ewan
@Możesz zbudować jakiś globalny rejestr i zarejestrować każdy komponent, gdy zostanie utworzony z 'React.createClass' (np. Poprzez zawijanie go w wywołaniu funkcji lub coś podobnego), ale na pewno będziesz musiał uzyskać referencje do rzeczywistych składników . –