рдирдорд╕реНрддреЗ, рдореИрдВ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИ (рдЕрд░реНрдерд╛рдд, html <a>
рдЯреИрдЧ)ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдмрд╛рд░ рдореЗрдВ рднреА рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдкреГрд╖реНрдареЛрдВ рдкрд░ рд╕рдВрдХреНрд░рдордг рдСрдирдХреНрд▓рд┐рдХ рдИрд╡реЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХ рд╣реЛрдиреЗ рд╕реЗ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░рд╕реНрддреБрдд рдкреГрд╖реНрдареЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ред
рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рди рдЬрд╛рдиреЗ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░рдг рд╣реИрдВ?
рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИред
href
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╡рд╛рд▓реЗ рдПрдВрдХрд░ рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣реБрдВрдЪ рдореЗрдВ рднреА рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реЗрдЧреА рдЬрд┐рд╕рдХреЗ рд╡реЗ рдЖрджреА рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП тМШ-рдирдП рдЯреИрдм рдореЗрдВ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ)ред
+1
+1
+1
+1
+1
+1
+1
@ecesena рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдирдП MenuItem
рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реЛрдЧрд╛? рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВред MenuItem
s <a>..</a>
рдШрд┐рд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдирд╣реАрдВ?
@shaurya947 рдиреЗ рдЬреЛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛,
рдореИрдВ рдЕрдкрдиреЗ рд╡рд╛рдордиреЗрд╡ рдореЗрдВ рдЗрд╕ рддрд░рд╣ MenuItems
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
let menuItems = (
<div>
<MenuItem primaryText="Doors" leftIcon={<FontIcon className="material-icons" color={GlobalStyles.default.activeColor}>home</FontIcon>} /></a>
<MenuItem primaryText="Load" leftIcon={<FontIcon className="material-icons" color={GlobalStyles.default.activeColor}>home</FontIcon>} />
<MenuItem primaryText="Notes" leftIcon={<FontIcon className="material-icons" color={GlobalStyles.default.activeColor}>home</FontIcon>} />
<MenuItem primaryText="Alerts" leftIcon={<FontIcon className="material-icons" color={GlobalStyles.default.activeColor}>home</FontIcon>} />
<MenuItem primaryText="Admin" leftIcon={<FontIcon className="material-icons" color={GlobalStyles.default.activeColor}>home</FontIcon>} />
</div>
);
return (
<LeftNav
ref="leftNav"
docked={false}
onChange={this._onLeftNavChange}
>
{menuItems}
</LeftNav>
)
рд░реИрдкрд┐рдВрдЧ рдПрдХ <a>
рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ <MenuItem>
рдЯреИрдЧ рдлреЗрдВрдХрддрд╛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА validateDOMNesting(...): <a> cannot appear as a descendant of <a>. See MainLayout > a > ... > MenuItem > ListItem > EnhancedButton > a"
рдпрджрд┐ рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рд░рд┐рдПрдХреНрдЯ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВред
<a href="/">
<MenuItem..>
<ListItem..>
<div>
<EnhancedButton..>
<a>
<TouchRipple ..>
</a>
</EnhancedButton>
</div>
</ListItem>
</MenuItem>
</a>
рдЬрд┐рд╕рдореЗрдВ <a>
рддрддреНрд╡реЛрдВ рдиреЗрд╕реНрдЯреЗрдб рд╣реЛрдирд╛ рдЖрдкрддреНрддрд┐рдЬрдирдХ рд╣реИред
<MenuItems>
рдмрдЯрди рдШреЛрд╖рдгрд╛ рдХреЗ рднреАрддрд░ <a>
рддрддреНрд╡ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред рдЙрддреНрдкрдиреНрди <EnhancedButton>
рднреАрддрд░ href рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MenuItem
рд╕реЗ рдХрд┐рд╕ рдкреНрд░реЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рд▓реЗрдлреНрдЯрдирд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдк рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрдиреНрдпреВрдЗрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХрд╛рд░реНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдмрд╛рдПрдВ/рджрд╛рдПрдВ рдЖрдЗрдХрди рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВред
рдЕрд░реНрдерд╛рдд:
let menuItems = [
{ route: '/load_areas/'+ this.state.area + '/doors', text: 'Doors' },
{ route: '/load_areas/'+ this.state.area + '/trailer_loads', text: 'Load' },
{ route: 'notes', text: 'Notes' },
{ route: 'alerts', text: 'Alerts' },
{ route: 'admin', text: 'Admin' }
];
<LeftNav
ref="leftNav"
docked={false}
menuItems={menuItems}
onChange={this._onLeftNavChange}
/>
рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ, рддрд╛рдХрд┐ рд╣рдо рдЗрд╕реЗ рд▓реЗрдмрд▓ рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдЗрд╕реЗ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХреЗрдВ, рдЯреАрдПрдирдПрдХреНрд╕: рдЧреНрд░рд┐рди:
containerElement
рдкреНрд░реЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ!
рджреЗрдЦреЛ:
http://stackoverflow.com/questions/32106513/material-ui-menu-using-routes/34507786#34507786
<MenuItem
containerElement={<Link to="/profile" />}
primaryText="Profile"
leftIcon={
<FontIcon className="material-icons">people</FontIcon>
} />
рдЕрдм linkButton
рдХреЗ рдкреНрд░реЛрдк EnhancedButton
рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм href
рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ рддреЛ LinkButton рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ v0.16.0 рдХреЗ рд╕рд╛рде рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<MenuItem primaryText="Primary Text" href="/your/link" />
href рдкреБрдирдГ рд▓реЛрдб рдкреГрд╖реНрдаред рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд░ рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ
@cezarneaga рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ href="#/your/link"
<MenuItem
containerElement={<Link to="/profile" />}
.../>
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ linkButton
рднреА рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
@DaxChen рдореИрдВрдиреЗ рджрд┐рд╕рдВрдмрд░ 2016 (рдЕрддреНрдпрдВрдд рд╣рд╛рд▓рд┐рдпрд╛ рд╣рд╛рд╣рд╛) рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛
<Drawer
docked={false}
width={300}
onRequestChange={this.closeDrawer}
open={this.state.open}>
<AppBar title="Title"
/>
<MenuItem primaryText="home" containerElement={<Link to="/home" />} />
</Drawer>
рдХрдВрдЯреЗрдирд░ рдПрд▓рд┐рдореЗрдВрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рдж!
рд╣рд╛рдп @ рдлрд╛рдУрд▓реЗрди !
рджреЗрд░ рд╕реЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреЗрдж рд╣реИ ...
рдореИрдВрдиреЗ рдЖрдкрдХреЛ create-react-app
рд╕рд╛рде рдПрдХ рд╕рд╛рдл рдРрдк рдкрд░ рдХреЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ ?!
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ react-router
рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реЛ, рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрд▓рдЧ рд╣реИ?
рд╡реИрд╕реЗ рднреА, рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд░реЗрдкреЛ рдФрд░ рдпрд╣рд╛рдВ рд▓рд╛рдЗрд╡ рдбреЗрдореЛ рд╣реИ ред
рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдореВрдирд╛ рд░реЗрдкреЛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдиреЗ рд╕рдлрд╛рд░реА рдФрд░ рдЖрдИрдУрдПрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рддреЛ рдпрд╣рд╛рдБ рдореИрдВрдиреЗ react-router
рд▓рд┐рдП рдПрдХ рдХрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ
<MenuItem
onTouchTap={() => {
this._yourMethod()
browserHistory.push('/howItWorks')
}}
primaryText="Menu Link"
/>
@janzenz рдХреНрдпрд╛ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ?
рдореИрдВрдиреЗ рдЗрд╕реЗ рдореИрдХрдУрдПрд╕ рдкрд░ рд╕рдлрд╛рд░реА рдФрд░ рдЖрдИрдУрдПрд╕ рдкрд░ рд╕рдлрд╛рд░реА рдореЗрдВ рдЖрдЬрдорд╛рдпрд╛ рдФрд░ рд╡реЗ рд╕рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ?
рдпрджреНрдпрдкрд┐ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЦрд░рд╛рдм рдПрд╕рдИрдУ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдк рдХреБрдЫ рдореВрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреИрд╕реЗ рд▓рд┐рдВрдХ-рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдФрд░ рдирдП рдЯреИрдм рдореЗрдВ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк-рдХреНрд▓рд┐рдХ рдЦреЛ рджреЗрдВрдЧреЗред
@DaxChen рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рд▓рд┐рдВрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ onTouchTap
рдкреНрд░реЛрдк рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ <Link />
рдЕрдм рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
@janzenz рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ onTouchTap
рдкреНрд░реЛрдк рдЬреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдкрддрд╛ рдирд╣реАрдВ рдЖрдкрдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХрд╣реАрдВ рдЕрд▓рдЧ рд╣реИ рдпрд╛ рдХреБрдЫ рдФрд░...
рдЖрдк рдЕрджреНрдпрддрди рдХреЛрдб рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?
@DaxChen рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдВрд╕реНрдХрд░рдг ~0.16.0
рдкрд░ material-ui
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдирд╡реАрдирддрдо ~0.17.0
рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ?
@janzenz рдореИрдВ рдПрдХ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдмрд╕ рдирд╡реАрдирддрдо 0.17.4
рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
рдЯрдЪ! рд╢рд╛рдпрдж рддрдм рдореЗрд░рд╛ рд╕реЗрдЯрдЕрдкред рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ @DaxChen рдореИрдВ рдЗрд╕ рд╕реВрддреНрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдКрдВрдЧрд╛ рдпрджрд┐ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓ рдЧрдИ рд╣реИред
@DaxChen , рдореИрдВрдиреЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛
Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in. Check the render method of `EnhancedButton`.
at invariant (invariant.js:44)
at ReactCompositeComponentWrapper.instantiateReactComponent [as _instantiateReactComponent] (instantiateReactComponent.js:74)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:367)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactDOMComponent.mountChildren (ReactMultiChild.js:238)
at ReactDOMComponent._createInitialChildren (ReactDOMComponent.js:697)
at ReactDOMComponent.mountComponent (ReactDOMComponent.js:516)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactDOMComponent.mountChildren (ReactMultiChild.js:238)
at ReactDOMComponent._createInitialChildren (ReactDOMComponent.js:697)
at ReactDOMComponent.mountComponent (ReactDOMComponent.js:516)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactDOMComponent.mountChildren (ReactMultiChild.js:238)
at ReactDOMComponent._createInitialChildren (ReactDOMComponent.js:697)
at ReactDOMComponent.mountComponent (ReactDOMComponent.js:516)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactDOMComponent.mountChildren (ReactMultiChild.js:238)
at ReactDOMComponent._createInitialChildren (ReactDOMComponent.js:697)
at ReactDOMComponent.mountComponent (ReactDOMComponent.js:516)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258)
at Object.mountComponent (ReactReconciler.js:46)
at mountComponentIntoNode (ReactMount.js:104)
at ReactReconcileTransaction.perform (Transaction.js:140)
at batchedMountComponentIntoNode (ReactMount.js:126)
at ReactDefaultBatchingStrategyTransaction.perform (Transaction.js:140)
at Object.batchedUpdates (ReactDefaultBatchingStrategy.js:62)
at Object.batchedUpdates (ReactUpdates.js:97)
at Object._renderNewRootComponent (ReactMount.js:320)
at Object._renderSubtreeIntoContainer (ReactMount.js:401)
at Object.render (ReactMount.js:422)
at Object.<anonymous> (index.js:36)
at __webpack_require__ (bootstrap e3e2367тАж:555)
at fn (bootstrap e3e2367тАж:86)
at Object.<anonymous> (bootstrap e3e2367тАж:578)
at __webpack_require__ (bootstrap e3e2367тАж:555)
at bootstrap e3e2367тАж:578
at bootstrap e3e2367тАж:578
рдореЗрд░рд╛ рдХреЛрдб https://github.com/hhimanshu/spicyveggie/tree/cards ( cards
рд╢рд╛рдЦрд╛) рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
@janzenz
рдореИрдВрдиреЗ browserHistory.push('/howItWorks')
рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ import browserHistory from 'react-router-dom'
рдЖрдпрд╛рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди undefuned
ред
@ рдУрдбреБрдЗрдЧ ,
рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА #/your/link
, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдХрд╣реАрдВ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛
рдореИрдВрдиреЗ /your/link
рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВ Drawer
рд╕реЗ Material-UI
Drawer
рдЦреЛ рджреЗрддрд╛ рд╣реВрдВ
рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЪреАрдЬ рдореЗрд░реЗ рдХрд╛рдо рдирд╣реАрдВ рдЖрдИред рдореЗрд░рд╛ рдХреЛрдб https://github.com/hhimanshu/spicyveggie/tree/cards ( cards
рд╢рд╛рдЦрд╛) рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ https://github.com/hhimanhu/spicyveggie/commit/844b7b7cddf9102995cd2680a783df3b6ef48537 рд╣реИ , рдХреЛрдИ рдХреГрдкрдпрд╛ рдорджрдж рдХрд░реЗрдВ?
@рд╣рд┐рдорд╛рдВрд╢реБ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдмрджрд▓ рджреЗрдВ
import { Link } from 'react-router-dom'
рдПрдордбреАрдПрди рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА
@DaxChen , рдзрдиреНрдпрд╡рд╛рджред рд╡рд╣ рдпрд╣ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдореЗрд░рд╛ рдкреГрд╖реНрда {<Link to="/menu"/>}
рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореЗрд░рд╛ Drawer
рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
@рд╣рд┐рдорд╛рдВрд╢реБ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЕрдкрдиреЗ \menu
рдорд╛рд░реНрдЧ рдореЗрдВ рдХреЗрд╡рд▓ Menu
рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ , рдЗрд╕рд▓рд┐рдП App
рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдкрдиреЗ Menu
рдФрд░ Summary
рдХреЛ App
рдпрд╛ рдХреБрдЫ рд▓реЗрдЖрдЙрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдВрджрд░ рдШреЛрдВрд╕рд▓рд╛ рдмрдирд╛рдПрдВ, рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЪреНрдЪреЛрдВ рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВред
рдЖрдк рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдФрд░ рдЙрд╕рдХреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╡рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рдпрд╣ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ, рдХреГрдкрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓/рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред
рдзрдиреНрдпрд╡рд╛рдж @DaxChen , рдореИрдВрдиреЗ рдЗрд╕реЗ https://github.com/hhimanshu/spicyveggie/blob/master/src/index.js#L20 рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛
+1
рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╣реИрдВрдбрд▓ рдХрд┐рдП рдЧрдП рдФрд░ рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рдиред
рдпрджрд┐ рд▓рдХреНрд╖реНрдп рд▓рд┐рдВрдХ рдХреЛ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
MenuItemLink.js
import React from 'react';
import { MenuItem } from 'material-ui/Menu';
import { Route } from 'react-router-dom';
class MenuItemLink extends React.Component {
render() {
const {
to, also,
...rest
} = this.props;
return (
<Route
render={({ history, location }) => (
<MenuItem
onClick={() => {
history.push(to);
if (typeof also === 'function') {
also();
}
}}
{...rest}
/>
)}
/>
);
}
}
MenuItemLink.muiName = 'MenuItem';
export default MenuItemLink;
рдирдореВрдирд╛ рдХреЛрдб:
import MenuItemLink from './MenuItemLink';
<Menu ... >
<MenuItemLink to="/users"
also={this.handleRequestClose}>Users</MenuItemLink>
</Menu>
рдпрджрд┐ рд▓рдХреНрд╖реНрдп рд▓рд┐рдВрдХ рдХреЛ рд░рд┐рдПрдХреНрдЯ рд░рд╛рдЙрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд: рдЕрдиреБрд░реЛрдз рдХреЛ рдПрдХ рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдСрдирдХреНрд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди:
function facebookLoginRedirect () {
if (window) window.location.href = "/api/auth/facebook"
return true;
}
рдирдореВрдирд╛ рдХреЛрдб:
<MenuItem onClick={ facebookLoginRedirect }>Login with Facebook</MenuItem>
рдореИрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдЧрд░ рдХрд┐рд╕реА рдФрд░ рдиреЗ рднреА рдЗрд╕ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рд╣реИред
V3.4 рдкрд░, рдЖрдк рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
import { Link } from 'react-router-dom';
import MenuItem from '@material-ui/core/MenuItem';
...
<MenuItem component={Link} to="/your-path">...</MenuItem>
рдореЗрдиреВ рд▓реЗрдЖрдЙрдЯ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдерд╛:
```рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдореЗрдиреВ рд▓реЗрдЖрдЙрдЯ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдерд╛:
<MenuList> <Link to='/your-path' style={{ textDecoration: 'none' }}> <MenuItem> Notifications </MenuItem> </Link> <Link to='/your-path' style={{ textDecoration: 'none' }}> <MenuItem> Profile </MenuItem> </Link> </MenuList>
@eladlevy рдпрд╣ рдПрдХ рдЦрд░рд╛рдм рд╢рдмреНрджрд╛рд░реНрде HTML рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдЧрд╛ред
<ul>
<a><li/></a>
<a><li/></a>
</ul>
рдЗрд╕реЗ рдпрд╣рд╛рдВ рдЫреЛрдбрд╝рдХрд░ рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ (v3.9.0 рдЪрд▓ рд░рд╣рд╛ рд╣реИ)ред рдореИрдВ рдПрдХ рдХреА рдЬрд░реВрд░рдд <Select>
рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП react-router-dom
<Link>
рдПрд╕ред рдкреНрд░рддреНрдпреЗрдХ рд▓рд┐рдВрдХ рдПрдХ рднрд╛рд╖рд╛ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбреНрд░реЙрдкрдбрд╛рдЙрди рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рд╡рд░реНрддрдорд╛рди рднрд╛рд╖рд╛ рдХрд╛ рдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
<Select value={currentLanguage}>
{languages.map(language => (
<ListItem
button
component={btnProps => (
<Link
to={ `/things?lang=${ language }` }
{...btnProps as any}
/>
)}
value={language}
key={language}
>
{language}
</ListItem>
))}
</Select>
рдпрд╣ рд╕рдмрд╕реЗ рд╕рд╛рдл рд╕рдорд╛рдзрд╛рди рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдкрд╛ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдиреНрдпреВрдирддрдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рд╕рд╛рдордЧреНрд░реА рдпреВрдЖрдИ рдХреЗ рдЕрдиреБрд░реВрдк рджреГрд╢реНрдп рдмрдирд╛рдП рд░рдЦрд╛ред
@goyney рдХреЗ рдкрд╛рд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж
рдореИрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдЧрд░ рдХрд┐рд╕реА рдФрд░ рдиреЗ рднреА рдЗрд╕ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рд╣реИред
V3.4 рдкрд░, рдЖрдк рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
import { Link } from 'react-router-dom'; import MenuItem from '@material-ui/core/MenuItem'; ... <MenuItem component={Link} to="/your-path">...</MenuItem>
рдХрд╛рд░реНрдп рдФрд░ рд╕реНрд╡рдЪреНрдЫ рд╕рдорд╛рдзрд╛рди, рдзрдиреНрдпрд╡рд╛рдж тЭдя╕П
рдмрд╛рд╣рд░реА рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдЖрдк component="a"
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди MenuItem
рдХреЛ <li>
:
<MenuList>
<li>
<MenuItem
component="a"
href="https://google.com"
target="_blank"
>Google</MenuItem>
</li>
</MenuList>
рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдЪрдЯреАрдПрдордПрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:
<ul class="MuiList-root MuiList-padding" role="menu" tabindex="-1">
<li>
<a class="[...]" tabindex="-1" aria-disabled="false" role="menuitem" href="https://google.com" target="_blank">Google</a>
</li>
</ul>
рдорд╛рди рд▓реАрдЬрд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдкреЙрдкрдЕрдк рдореЗрдиреВ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
'рд░рд┐рдПрдХреНрдЯ-рд░рд╛рдЙрдЯрд░-рдбреЛрдо' рд╕реЗ рдЖрдпрд╛рдд {рд▓рд┐рдВрдХ};
'@ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ/рдХреЛрд░/рдореЗрдиреВрдЗрдЯрдо' рд╕реЗ рдореЗрдиреВ рдЖрдЗрдЯрдо рдЖрдпрд╛рдд рдХрд░реЗрдВ;
\
рд▓рд┐рдВрдХ /рдЖрдкрдХрд╛-рдкрде рдкреГрд╖реНрда рд▓рд╛рдПрдЧрд╛, рдХреЛрдИ рдкреЙрдкрдЕрдк рдореЗрдиреВ рдХреЛ рдХреИрд╕реЗ рдмрдВрдж рдХрд░реЗрдЧрд╛?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
containerElement
рдкреНрд░реЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ!рджреЗрдЦреЛ:
http://stackoverflow.com/questions/32106513/material-ui-menu-using-routes/34507786#34507786