Ich habe eine einfache React App mit React-Router und MaterializeCSS zum Stylen.SideNav von Materialisecss funktioniert nicht mehr in React Web App
Das SideNav von materialise funktioniert zuerst, aber wenn ich Seiten wechsle, zum Beispiel von root url zu url/login, hört es auf zu arbeiten und fügt einfach eine hash - url/login # hinzu, wenn das Menü Icon angeklickt wird. Es hat wahrscheinlich etwas mit react-router und browserHistory zu tun.
Hier ist der entsprechende Code für die Ausgabe:
firebase.auth().onAuthStateChanged((user) => {
if(user){
browserHistory.push('/');
} else{
}
});
let loginRedirect = (nextState, replace, next) => {
if(firebase.auth().currentUser){
store.dispatch(actions.startLogout());
replace('/');
} else{
next();
}
};
ReactDOM.render(
<Provider store={store}>
<Router history={browserHistory}>
<Route path="/" component={Layout}/>
<Route path="/login" component={Login} onEnter={loginRedirect}/>
</Router>
</Provider>
,app);
$(document).ready(function(){$('.button-collapse').sideNav({
menuWidth: 200,
edge: 'left',
closeOnClick: true,
draggable: true
}
)});
Ich habe materialize-css und React für ein Projekt verwendet und bin so oft auf Konflikte gestoßen, dass ich diese Kombination nicht mehr verwenden würde. Wie Fabian gesagt hat, würde ich auch empfehlen, stattdessen die Material-ui-Komponenten für Sie arbeiten zu lassen. Sie sehen genauso gut aus, sind aber in React geschrieben. – Katpas