반응형
머티리얼 UI 리액트 버튼이 리액트 라우터 돔 링크 역할을 하도록 하는 방법
머티리얼 UI를 반응시키는 방법Button
컴포넌트가 역할을 하다Link
원래 스타일을 잃지 않고 리액트 컨트롤 돔의 컴포넌트를 사용할 수 있습니까?클릭해서 경로를 변경하는 것처럼요.
import Button from '@material-ui/core/Button';
<Button variant="contained" color="primary">
About Page
</Button>
이런 거에 대해서 원본을 유지하는 건Button
스타일:
import Button from '@material-ui/core/Button';
import { Link } from 'react-router-dom';
<Button variant="contained" color="primary">
<Link to="/about">
About Page
</Link>
</Button>
좋아요, 이건 아주 쉬워요. 왜 나한테 안 먹혔는지 모르겠어요.
이렇게 하면 됩니다.
import Button from '@material-ui/core/Button';
import { Link } from 'react-router-dom';
<Button component={Link} to="/about" variant="contained" color="primary">
About Page
</Button>
자세한 것은, https://mui.com/material-ui/guides/routing/ 를 참조해 주세요.
MUI 5는 이를 더욱 단순화했습니다.MUI를 제공하기만 하면Button
와 함께href
Atribute는 다음과 같습니다.
import Button from '@mui/material/Button';
<Button href="/" variant="contained">
Link
</Button>
포장해야 합니다.<Button />
내부<Link />
요소.
import Button from '@material-ui/core/Button';
import { Link } from 'react-router-dom';
const ButtonWithLink = () => (
<Link to="/about">
<Button variant="contained" color="primary">
About Page
</Button>
</Link>
)
넌 날 위해 일했어
import Button from '@material-ui/core/Button';
import { useHistory } from 'react-router-dom';
const YourComponentName = () =>{
const history = useHistory();
const handleRoutes = (path) =>{
history.push(path)
}
return(
<>
...
<Button
variant="contained"
color="primary"
onClick={() => handleRoutes('/about')}>
About Page
</Button>
...
</>
)
}
@brandonscript의 코멘트에 의하면, MUI 5 메뉴얼에서는, 테마를 작성해 컴포넌트를 1 회 설정하는 방법에 대해 설명하고 있습니다.
import { Link as RouterLink, LinkProps as RouterLinkProps } from 'react-router-dom';
import { LinkProps } from '@mui/material/Link';
const LinkBehavior = React.forwardRef<
HTMLAnchorElement,
Omit<RouterLinkProps, 'to'> & { href: RouterLinkProps['to'] }
>((props, ref) => {
const { href, ...other } = props;
// Map href (MUI) -> to (react-router)
return <RouterLink ref={ref} to={href} {...other} />;
});
const theme = createTheme({
components: {
MuiLink: {
defaultProps: {
component: LinkBehavior,
} as LinkProps,
},
MuiButtonBase: {
defaultProps: {
LinkComponent: LinkBehavior,
},
},
},
});
언급URL : https://stackoverflow.com/questions/51642532/how-to-make-a-material-ui-react-button-act-as-a-react-router-dom-link
반응형
'programing' 카테고리의 다른 글
Wordpress에서 현재 페이지 번호 찾기 (0) | 2023.03.11 |
---|---|
Javascript/HTML5에서 Excel(XLS) 파일을 해석하는 방법 (0) | 2023.03.11 |
Ajax 요청이 있는 Rail의 플래시를 어떻게 처리합니까? (0) | 2023.03.11 |
Mongoose가 하위 문서 배열 항목에 대한 _id 속성을 만들지 못하도록 합니다. (0) | 2023.03.11 |
작업 또는 페이지 로드 직전에 실행하기 위한 WordPress 후크 (0) | 2023.03.11 |