대응-유형 스크립트: 모듈 'react-router-dom'에 내보낸 멤버 'RouteComponentProp'이 없습니다.
프로젝트가 있고 이 프로젝트에는 로그인 페이지가 있고 "RouteComponentProps"를 사용하려고 하는데 다음 오류가 발생했습니다.
Module '"react-router-dom"' has no exported member 'RouteComponentProps'.
그리고 "react-router"를 통해 가져오기를 시도했지만 다음과 같이 나타났습니다.
Module '"react-router"' has no exported member 'RouteComponentProps'.
어떻게 하면 그 문제를 해결할 수 있을까요?
다음은 "RouteComponentProps"를 사용한 파일의 일부입니다.
signin.tsx:
import { RouteComponentProps } from 'react-router-dom';
interface Props {
history: RouteComponentProps['history']
}
꾸러미json:
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"@material-ui/core": "^4.12.3",
"@material-ui/icons": "^4.11.2",
"@material-ui/styles": "^4.11.4",
"@reach/router": "^1.3.4",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"@types/jest": "^26.0.24",
"@types/node": "^12.20.37",
"@types/react": "^17.0.37",
"@types/react-dom": "^17.0.11",
"@types/react-redux": "^7.1.20",
"axios": "^0.24.0",
"history": "^5.1.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-redux": "^7.2.6",
"react-router": "^6.1.1",
"react-router-dom": "^6.1.1",
"react-scripts": "4.0.3",
"redux": "^4.1.2",
"redux-devtools-extension": "^2.13.9",
"redux-thunk": "^2.4.1",
"thunk": "0.0.1",
"typescript": "^4.5.2",
"web-vitals": "^1.0.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@types/react-router": "^5.1.17",
"@types/react-router-dom": "^5.3.2",
"miragejs": "^0.1.43"
}
}
react-router
v6가 사용하지 않음RouteComponentProps
더이상.다음은 경로를 변경하는 방법과 v6에서 매개 변수를 사용하는 방법에 대한 예가 있는 몇 가지 링크입니다. 자세한 정보를 찾을 수 있는 몇 가지 링크는 다음과 같습니다.
경로 변경용(이전 내역.push)
로그인이 성공한 후 경로를 변경하려는 경우 대응 라우터 문서를 지정합니다.
v6에서는 내비게이션 API를 사용하도록 이 앱을 다시 작성해야 합니다.대부분의 경우 이는 useHistory를 사용하여 Navigate를 사용하도록 변경하고 history.push 또는 history.replace 콜 사이트를 변경하는 것을 의미합니다.
그래서 기본적으로 이것 대신에.
...
function handleClick() {
history.push("/home");
}
...
다음과 같은 것을 사용합니다.
// This is a React Router v6 app
import { useNavigate } from "react-router-dom";
function App() {
let navigate = useNavigate();
function handleClick() {
navigate("/home");
}
...
링크 매개변수의 경우
이 링크에 따르면 React Router v6로 업그레이드할 때 사용해야 합니다.import {useParams} from 'react-router-dom';
+const params = useParams();
그래서 다음과 같은 것.
import React from 'react';
import {useParams} from 'react-router-dom';
const Component: React.FC = (): JSX.Element => {
const params = useParams();
return <>Link ID parameter === "{params.id}"</>;
}
유형(포트)에 대한 편집:인터페이스에 대한 자세한 내용은 여기에서 확인할 수 있습니다(사용하기 위한 탐색). 그리고 잠재적으로 흥미로운 다른 항목은 여기와 여기에서 확인할 수 있습니다.
언급URL : https://stackoverflow.com/questions/70378978/react-typescript-module-react-router-dom-has-no-exported-member-routecompo
'programing' 카테고리의 다른 글
Firebase - API 키란? (0) | 2023.07.09 |
---|---|
angular-2에서 GUID를 만드는 방법은 무엇입니까? (0) | 2023.07.09 |
문자열에서 VBA 범위 (0) | 2023.07.09 |
VM 구현을 위한 자습서/리소스 (0) | 2023.07.09 |
Node.js 및 mongoose를 사용하여 '명령 찾기 인증 필요'를 해결하는 방법은 무엇입니까? (0) | 2023.07.09 |