J'utilise react-router
v4 pour générer des routes dynamiques qui sont chargées à partir d'une API asynchrone. Les données extraites de l'API est passé à travers une fonction qui permettra de créer REACT routes, quelque chose de similaire à:Stockage des routes de réaction dans Redux
import Home from "containers/home"
import FeaturePage from "containers/featurePage"
response.map((item) => {
if (item.value.toLowerCase() === "home") {
return {
path: item.path,
component: Home,
exact: item.isExact
}
} else if (item.value.toLowerCase() === "featurePage") {
return {
path: item.path,
component: FeaturePage,
exact: item.isExact
}
} else {
// ...etc
}
});
Une fois que les itinéraires sont chargés, ils sont ajoutés au magasin Redux en utilisant une action-réducteur comme d'habitude. Cela fonctionne bien car le magasin Redux supporte les fonctions. Toutefois, les fonctions de stockage dans le magasin Redux doesn't seem to be the best way forward Quelle serait une meilleure mise en œuvre? J'ai besoin de stocker le composant qui doit être rendu, qui n'est pas sérialisable. Il suffit de stocker le nom du composant sous forme de chaînes?
J'ai réussi à faire fonctionner cela en stockant le nom du composant dans le magasin, puis en passant le nom du composant dans une fonction qui renvoie le composant. J'ai besoin du composant pour pouvoir le référencer lors de la création du composant "react-router". 'Accueil import' ' de "conteneurs/home" const getRouteComponent = name => { commutateur (nom) { cas "Home": retour à la maison; par défaut: return undefined; } }; '' ' –
Si vous êtes en mesure de mettre à jour votre exemple, je peux le marquer comme correct. Je créer la Route 'réagir-router' en utilisant: {routes.map (route => { retour ( ); })} –