Listitem์ ๋ค๋ฅธ URL์ ๋ํ ๋งํฌ๋ก ์ฌ์ฉํ๋ ค๊ณ ํ๋๋ฐ Link์ ์์ฑ์ด ListItem์ ์์ฑ๋ณด๋ค ์ฐ์ ํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ํด๊ฒฐ์ฑ
์ด ์์ต๋๊น
< ListItem primaryText = { <Link to="a" > as </Link> } />
@TonyFrancis href
์์ฑ์ ListItem์ ์ถ๊ฐํ ์ ์์ด์ผ ํฉ๋๋ค.
@TonyFrancis gitter์ ๋ํ ๊ทํ์ ์๊ฒฌ์ ๋ฐ์์ผ๋ฉฐ ์ด๊ฒ์ด ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ์ง๊ธ์ ์ด ์์ ์ ์ข ๋ฃํ๊ฒ ์ต๋๋ค. ๋ฌธ์ ๊ฐ ๊ณ์๋๋ฉด ๋ค์ ์ด์ด์ฃผ์ธ์.
href
๋ ๋ฌธ์์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
ํธ์งํ๋ค:
์ ์ฅ! ์ด ๋ฌธ์ ๋ #2243์์ ํด๊ฒฐ๋์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก; ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ์์ฑ์ด ๋ฌด์์ธ์ง ๋ฌธ์์์ ๋ช
ํํ์ง ์์ต๋๋ค. ์ด๊ฒ์ ๋ฌธ์ํ๋์ด์ผ ํ๋ฉฐ ๋ค์ ์ง์ ์ ๋์์ด ๋์ง ์์ต๋๋ค.
Other properties (no documented) are applied to the root element.
github List ๊ตฌํ์ ๋ณด์๊ณ containerElement
์์ฑ์ด ์๋ ์ปจํ
์ด๋ ๊ตฌ์ฑ ์์๊ฐ ์ฌ์ฉ๋๊ณ ์์ง ์์ต๋๋ค.
@TonyFrancis ์๋ต์ ๊ธฐ๋ฐ์ผ๋ก href๊ฐ ํ์๋ฅผ ์์ ํ ์ถฉ์กฑํ์ง ๋ชปํฉ๋๋ค. Link
๊ตฌ์ฑ ์์์ ์ถ์ฒ์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ฐ์ ๋ผ์ฐํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ basename
๋ฅผ ์ง์ ํ ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด <Router basename='/my-app'>
์ฑ์ ๋ํํ๋ ๊ฒฝ์ฐ
< ListItem primaryText = { <Link to="a" > as </Link> } />
basename
๋ฅผ ์ฌ๊ธฐ์ ๊ธฐ ๋ค๊ณ ๋ค๋ ํ์ ์์ด my-app/a
์ฐ๊ฒฐ๋ฉ๋๋ค.
๋ฌธ์๊ฐ ๋์๊ฒ ์ถฉ๋ถํ ๋ช ํํ์ง ์์ต๋๋ค. ํ
ListItem์ ๋ํ ๋ฌธ์์ href ํ๋๊ฐ ์์ต๋๋ค.
๋ฐฉ๊ธ ์ด๊ฒ์ ๋ถ๋ช์ณค์ต๋๋ค. ๋๋ ์ด๊ฒ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์๋ํฉ๋๋ค.
<ListItem button component={Link} to='/some-url'>...</ListItem>
@mariotacke ^ ์ด ์ฝ๋๋ ์๋ฏธ์ ์ ํจํ์ง ์์ ul > a
๋งํฌ์
์ ์์ฑํฉ๋๋ค( https://github.com/mui-org/material-ui/issues/7956#issuecomment -362433602 ์ฐธ์กฐ).
ํธ์ง: ๋ถ๋ชจ๊ฐ <nav>
์ด๊ฑฐ๋ component="nav"
์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ด์ฐฎ์ต๋๋ค.
์ด์ ๋ค์ ์ฝ๋๋ก ์ด๊ฒ์ ์์ฑํ ์ ์์ต๋๋ค.
```
์ปจํ
์ด๋ ์์={ }
/>
````
์๋ ํ์ธ์ @Glaadis Tnx, ์๋ํฉ๋๋ค
๋งํฌ์ ์ด ๋์๊ฒ ์ค๋ฅ๋ฅผ ์ ๊ณตํ๋ @Glaadiss :
Warning: React does not recognize the
์ปจํ
์ด๋ ์์ prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase
์ปจํ
์ด๋ ์์ instead. If you accidentally passed it from a parent component, remove it from the DOM element.
๋ด๊ฐ React ๋๋ MUI์ ์ค๋๋ ๋ฒ์ ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๊น?
@renannobile ๊ตฌ์ฑ ์์ ์ค ํ๋์์ ๋ถํ์ํ {...props}
๋ฅผ ์ ๋ฌ ํ๋์ง ํ์ธํ์ญ์์ค. ๊ฐ์ด๋์์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ ๋ ํํ ํ๋ ์ค์์
๋๋ค :P
@Glaadis 1.0.0-beta.44์์๋ ์ด๊ฒ์ ์ฌ์ฉํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ํ์ ๋ง์น:
<List component="nav">
<ListItem component={Link} to="/admin/user">
<ListItemIcon>
<PersonIcon />
</ListItemIcon>
<ListItemText primary="Inbox" />
</ListItem>
<ListItem button>
<ListItemIcon>
<DraftsIcon />
</ListItemIcon>
<ListItemText primary="Drafts" />
</ListItem>
</List>
์์ ๊ฒฝ์ฐ๋ ํจ๊ณผ๊ฐ ์์ง๋ง ํ๊ธ ํจ๊ณผ๊ฐ ์์ผ๋ฉฐ div๊ฐ ์์์ผ๋ก ์๋ a
๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ ๋ถ๋ฒ์
๋๋ค.
<List component="nav">
<ListItem primaryText="Inbox" component={Link} to="/admin/user">
<ListItemIcon>
<PersonIcon />
</ListItemIcon>
</ListItem>
<ListItem button>
<ListItemIcon>
<DraftsIcon />
</ListItemIcon>
<ListItemText primary="Drafts" />
</ListItem>
</List>
์์ ๊ฒฝ์ฐ๋ ํจ๊ณผ๊ฐ ์์ง๋ง ํ๊ธ ํจ๊ณผ๊ฐ ์์ผ๋ฉฐ ๋์ ๋ณด์ด๋ ํ ์คํธ๊ฐ ์๋ ํญ๋ชฉ์ด ์์ฑ๋ฉ๋๋ค.
<List component="nav">
<ListItem primaryText="Inbox" containerElement={<Link to="/admin/user" />}>
<ListItemIcon>
<PersonIcon />
</ListItemIcon>
</ListItem>
<ListItem button>
<ListItemIcon>
<DraftsIcon />
</ListItemIcon>
<ListItemText primary="Drafts" />
</ListItem>
</List>
์์ ๊ฒฝ์ฐ๋ HTML์ containerElement์ ๋ํ [object Object] ์์ฑ์ ๋ณด์ฌ์ค๋๋ค.
<List component="nav">
<ListItem ContainerComponent={() => <Link to="/admin/user" />}>
<ListItemIcon>
<PersonIcon />
</ListItemIcon>
<ListItemText primary="Inbox" />
</ListItem>
<ListItem button>
<ListItemIcon>
<DraftsIcon />
</ListItemIcon>
<ListItemText primary="Drafts" />
</ListItem>
</List>
<List component="nav">
<ListItem ContainerComponent={Link to="/admin/user" />}>
<ListItemIcon>
<PersonIcon />
</ListItemIcon>
<ListItemText primary="Inbox" />
</ListItem>
<ListItem button>
<ListItemIcon>
<DraftsIcon />
</ListItemIcon>
<ListItemText primary="Drafts" />
</ListItem>
</List>
md5-7ff35357efa037d9c88356d4d3bf14ad
<List component="nav">
<ListItem ContainerComponent={Link} ContainerProps={{ to: '/admin/user' }}>
<ListItemIcon>
<PersonIcon />
</ListItemIcon>
<ListItemText primary="Inbox" />
</ListItem>
<ListItem button>
<ListItemIcon>
<DraftsIcon />
</ListItemIcon>
<ListItemText primary="Drafts" />
</ListItem>
</List>
์! ํด๊ฒฐ์ฑ ์ ์ด๊ฒ์ ๋๋ค.
<List component="nav">
<ListItem component={Link} to="/admin/user" button>
<ListItemIcon>
<PersonIcon />
</ListItemIcon>
<ListItemText primary="Inbox" />
</ListItem>
<ListItem button>
<ListItemIcon>
<DraftsIcon />
</ListItemIcon>
<ListItemText primary="Drafts" />
</ListItem>
</List>
@mschipperheyn ์ด๊ฒ์ ์๋ํ์ง๋ง ํ๊ธ ํจ๊ณผ๊ฐ ์๋ง์ ๋๋ค.
์๋ ํ์ธ์, ์ด ์์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
์ด๊ฒ์ ๋ฆฌํ์ ํฌํจํ์ฌ ์ ์๊ฒ ํจ๊ณผ์ ์ ๋๋ค.
<ListItem button component={
({ children, ...props }) =>
<Link to="/" {...props as LinkProps}>
{children}
</Link>
}>
๋ค์ ์ ๊ทผ ๋ฐฉ์์ ์๋ ์คํ์ผ๊ณผ ์ ์ฐํ ๋์์ ์ ์งํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค.
<ListItem component={props => (
<ListItem button>
<Link style={{
position: "absolute",
top: 0,
left: 0,
right: 0,
bottom: 0
}}
to={"/"}>
</Link>
{props.children}
</ListItem>
)}>
<ListItemIcon>
<ArrowForwardIcon/>
</ListItemIcon>
<ListItemText primary="List Item" />
</ListItem>
Next.js ์ฌ์ฉ์์ ๊ฒฝ์ฐ:
<List component="nav">
<Link href="/admin/resources" passHref>
<ListItem component="a" button>
<ListItemIcon>
<InboxIcon />
</ListItemIcon>
<ListItemText primary="Resources" />
</ListItem>
</Link>
...
์ด๊ฒ์ ๋ช
๋ฐฑํด ๋ณด์ผ ์ ์์ง๋ง <Link/>
๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์๊ณ <a>
์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ(์ฆ, ์์ฑ ์ค์ธ SPA์ ์ด์ ์ ์ป์ง ๋ชปํ๋ ๊ฒฝ์ฐ) ๋ค์์ ์ํํ ์ ์์ต๋๋ค. :
<a href="/yourlink">
<ListItem
button
>
<ListItemText primary="Your Link Text" />
</ListItem>
</a>
๊ธฐ๋ณธ์ ์ผ๋ก Eslint๋ rel="noopener noreferrer"
๊ฒฝ์ฐ target="_blank"
rel="noopener noreferrer"
๊ฐ ํ์ํฉ๋๋ค.
<List>
<a
href="https://fb.me/xxxxxxxxx"
target="_blank"
rel="noopener noreferrer"
className={classes.hrefLink}
>
<ListItem button>
<ListItemIcon>
<ThumbUp className={classes.icon32} />
</ListItemIcon>
<ListItemText primary="Visit our Facebook Page" secondary="@xxxxxxxxxx" />
</ListItem>
</a>
</List>
์ด๊ฒ์ v4์์ ์๋ํฉ๋๋ค.
<ListItem button to={to} component={Link}>
{children}
</ListItem>
๋ด์ฅ Mui-selected
ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ์ ๊ทผ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<ListItem
button
component={NavLink}
activeClassName={"Mui-selected"}
to={"/some-url"}
exact
>
...
</ListItem>
ListItem pls์ ํจ๊ป ์๋ํ์ง ์๋ ๋งํฌ๋ ๋๋ฅผ ๋์์ฃผ์ธ์
@gautam751 ์ฌ๋๋ค์ด ๋น์ ์ ๋์ธ ์ ์๋๋ก ์ฝ๋ ๋๋ ์ ์ฅ์๋ฅผ ๊ณต์ ํ์ญ์์ค.
๋ฐฉ๊ธ ์ด๊ฒ์ ๋ถ๋ช์ณค์ต๋๋ค. ๋๋ ์ด๊ฒ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์๋ํฉ๋๋ค.
<ListItem button component={Link} to='/some-url'>...</ListItem>
์ ๋ฅผ ์ํด ์ผํ์ต๋๋ค, ๊ฐ์ฌํฉ๋๋ค
๊ทธ๋ฌ๋ ์ค์ ๋ก ๋๋ ์ด๊ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํฉ๋๋ค.
<ListItem button component={Link} to="/SomePath">
...
</ListItem>
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฐฉ๊ธ ์ด๊ฒ์ ๋ถ๋ช์ณค์ต๋๋ค. ๋๋ ์ด๊ฒ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์๋ํฉ๋๋ค.