javascript - SideNav from Materializecss stops working in React Web App -


i have simple react app react-router , materializecss styling.

the sidenav materialize works @ first when switch pages, instance going root url url/login stops working , adds hash - url/login# when menu icon clicked. has react-router , browserhistory.

here's relevant code issue:

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  } )}); 

jquery , react interfering heavily here. you're better off using react-material's drawer component. written in react , makes easier implement , maintain. here's example documentation:

import react 'react'; import drawer 'material-ui/drawer'; import menuitem 'material-ui/menuitem'; import raisedbutton 'material-ui/raisedbutton';  export default class drawerundockedexample extends react.component {    constructor(props) {     super(props);     this.state = {open: false};   }    handletoggle = () => this.setstate({open: !this.state.open});    handleclose = () => this.setstate({open: false});    render() {     return (       <div>         <raisedbutton           label="open drawer"           ontouchtap={this.handletoggle}         />         <drawer           docked={false}           width={200}           open={this.state.open}           onrequestchange={(open) => this.setstate({open})}         >           <menuitem ontouchtap={this.handleclose}>menu item</menuitem>           <menuitem ontouchtap={this.handleclose}>menu item 2</menuitem>         </drawer>       </div>     );   } } 

i'd recommend switch material-ui other stuff want build.


Comments

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -