Ich versuche, meine "intelligente" Popup-Komponente zu machen, die in sich einige Komponenten öffnen kann, aber meine Umsetzung ist nicht gut, weil es nicht funktioniert.Wie kann ich reagieren Komponenten ohne Jsx-Format?
Ich benutze Redux-Ansatz zum Erstellen von Popup und Aktion des Öffnens meines Popup ist in der Lage, Name einer Komponente für das Rendern zu erhalten, bevor Popup geöffnet wird;
Aber ich habe ein Problem, nachdem Parameter immer, in unserem Fall ist es nameOfComponent, ich brauche Komponente zu wählen und machte mit dem Namen nameOfComponent.
Und meine Frage jetzt, wie kann es Komponente aus Array zu rendern?
// He's my components
import Login from '../Login/login.js';
import Logout from '../Logout/logout.js';
const popupContent = {
Login : Login,
logout: Logout
};
// My component
class Popup extends Component {
componentDidUpdate() {
// for example
const nameOfComponent = "Login";
this.body = this.setBodyPopup(nameOfComponent);
return true;
}
setBodyPopup(property){
return popupContent[property];
}
render() {
// I want to render some element from popupContent here
<div>
// <this.body /> // it's jsx format
{this.body}
</div>
}
}
Ich weiß nicht, warum Sie verwenden 'componentDidUpdate', ich glaube, Sie Konstruktor in diesem Fall verwenden können - https://jsfiddle.net/69z2wepo/36027/ –
Weil mein Pop-up kann mit einem anderen Inhalt Öffnung , die Requisiten passiert haben. Ich habe ein einzelnes Popup für Spa. –