Salutare. Am o mica problemuta careia nu ii pot da de cap.
Am o mica aplicatie in react iar app.js-ul este inclus in 2 contextAPI. Unul global ce stabileste autentificarea iar celalalt sa sharuiasca niste date intre componente.
Problema pe care o am este ca atunci cand userul se duce pe o ruta inexistenta, ex: www.baseUrl.com/nu-exista nu se randeaza componenta 404 - NotFound(e blank). Daca includ componenta NotFound in Context-ul de sharuit date, atunci NotFound imi apare pe prima pagina.
In primul rand incearca sa ti reorganizezi un pic mai structura fisierelor, te ajuta sa tii totul mai curat. Ai putea sa-ti organizezi totul pe module (depinde si cat de mare e aplicatia).
e.g
modules/Products/index.jsx care sa-ti exporte tot, iar contextul a fi folosit aici, nu in partea de router. Sunt cateva tipuri de providers care ar avea sens acolo (e.g cel de Auth) , dar si cele la nivel de app trebuie sa fie in afara componentelor de routare. O varianta ar fi ceva de genul, unde nu ai nimic custom intre Router, Switch si Route. Providerul de Auth ar avea sens sa fie imediat dupa app-body, astfel incat poti customiza inclusiv headerul daca userul e sau nu autentificat etc.
Multumesc de interes si timpul acordat, guys. Observasem ca problema este la context insa fraza “All children of a Switch should be Route or Redirect elements.” m-a ajutat mult.
Solutia pe care am gasit-o este sa scot cele doua contexturi in afara Switch-ului insa obligatoriu si Header-ul. Mai multe info aici:
iar demo aici:
Problema pe care o mai am acum este ca ProductsContextProvider inglobeaza toata aplicata, iar eu as vrea doar la cateva componente specifice. (Nu vreau ca toata aplicatia sa faca re-render cand acel context isi schimba state-ul), Dar asta e o alta problema.
Cheers!