在 React:Module not found: Can't resolve 'react-router-dom'
Posted
技术标签:
【中文标题】在 React:Module not found: Can\'t resolve \'react-router-dom\'【英文标题】:In React:Module not found: Can't resolve 'react-router-dom'在 React:Module not found: Can't resolve 'react-router-dom' 【发布时间】:2019-01-14 10:06:43 【问题描述】:enter image description here enter image description here
import * as React from 'react';
import Root from './Root';
import './App.css'
import session from './libs/session';
import Redirect from "react-router-dom";
export default class App extends React.Component
public componentWillMount()
console.log("componentWillMount App");
public componentDidMount()
console.log("componentDidMount App");
console.log(window.location.search.replace(/\?/g,''));
const urlParmes = window.location.search.replace(/\?/g,'');
session.token = urlParmes.replace(/^token=/g,'');
public render()
if (session.token === '' || session.token === null || session.token === 'undefined')
console.log('no Jurisdiction');
return (<Redirect to='/'/>);
else
console.log('has Jurisdiction')
return (
<div className="App">
<Root />
</div>
)
我的目的是检测“令牌”,然后将其重定向到登录页面。 这就是为什么?请帮我。谢谢
【问题讨论】:
npmjs.com/package/react-router-dom你是否安装正确并列在你的package.json中? 你能把你的代码直接放到你的问题中吗? "dependencies": "antd": "^3.7.3", "less": "^3.8.0", "react": "^16.4.1", "react-dom ": "^16.4.1", "react-scripts-ts": "2.16.0", "devDependencies": "@types/history": "^4.7.0", "@types/jest": “^23.3.0”、“@types/react”:“^16.4.7”、“@types/react-dom”:“^16.0.6”、“@types/react-router-dom”:“^ 4.3.0”、“babel-preset-es2015”:“^6.24.1”、“babel-preset-react”:“^6.24.1”、“less-loader”:“^4.1.0”、“react -app-rewire-less”:“^2.1.2”,“react-app-rewired”:“^1.5.2”,“ts-import-plugin”:“^1.5.4”,“typescript”:“ ^2.9.2" 只需运行“npm i react-router-dom”然后重启服务器,它对我有用。 【参考方案1】:从反应路由器文档看来,重定向是反应路由器import Route, Redirect from 'react-router'
的一部分
【讨论】:
我在这里使用 react-router-dom 所有问题都解决了,谢谢大家的帮助;因为我在@types中安装了这个包,所以这个node_modules不是react-router-dom【参考方案2】:如果你已经安装了react-router-dom
包,那么你需要为 react-router-dom 定义 Typescript。安装@types/react-router-dom
包。所以要么:
npm install @types/react-router-dom --save
或:
yarn add @types/react-router-dom
【讨论】:
【参考方案3】:必须安装路由器,我使用以下命令解决了安装问题:
npm i react-router-dom --save
【讨论】:
补充一点,--save
标志也将修改您的package.json
/package-lock.json
文件,因为它会保存npm
正在安装的任何新软件包的信息(或更新如果其中存在旧版本,则将包的版本)复制到 JSON 文件中。【参考方案4】:
在app工作目录下cd然后运行:npm install @reach/router
【讨论】:
那个包不存在。以上是关于在 React:Module not found: Can't resolve 'react-router-dom'的主要内容,如果未能解决你的问题,请参考以下文章
React调试错误‘Module not found: Can‘t resolve‘
[react] Module not found: Can't resolve 'schedule' in 'C:Usersadcaldvmtn7myapp (代码片段