J'essaie de faire mon composant popup "intelligent", qui peut ouvrir en lui-même quelques composants, mais ma réalisation n'est pas bonne, car ça ne marche pas.Comment je peux rendre les composants de réaction sans format jsx?
J'utilise l'approche redux pour créer une popup et l'action d'ouvrir mon popup est capable d'obtenir le nom de tout composant pour le rendu avant que la popup ne soit ouverte;
Mais j'ai un problème, après avoir obtenu le paramètre, dans notre cas, il est nameOfComponent, je dois choisir et composant avec le nom rendre nameOfComponent.
Et ma question maintenant, comment peut-il rendre le composant à partir de la matrice?
// 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>
}
}
Je ne sais pas pourquoi vous utilisez 'componentDidUpdate', je pense que vous pouvez utiliser le constructeur dans ce cas - https://jsfiddle.net/69z2wepo/36027/ –
Parce que mon pop-up peut ouvrir avec un autre contenu , qui a traversé les accessoires. J'ai un seul popup pour le spa. –