【发布时间】:2019-10-20 06:19:31
【问题描述】:
尝试使用create-react-app 创建 ReactNav,就在添加 browserRouter 后的第二个,我收到警告:
元素类型无效:应为字符串(用于内置组件) 或类/函数(用于复合组件)但得到:对象。你 可能忘记从定义它的文件中导出您的组件, 或者您可能混淆了默认导入和命名导入。
检查
Context.Consumer的渲染方法。
Module../src/index.js
src/index.js:7
4 | import App from "./App";
5 | import "./index.css";
6 |
> 7 | ReactDOM.render(
8 | <BrowserRouter>
9 | <App />
10 | </BrowserRouter>,
这是我的 app.js
import React, { Component } from "react";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import logo from "./logo.svg";
import "bootstrap/dist/css/bootstrap.css";
import Nav from "./components/nav/nav";
import Home from "./components/home/home";
import About from "./components/about/about";
import Contact from "./components/contact/contact";
class App extends Component {
render() {
return (
<Router>
<div className="App">
<Nav />
<div className="container">
<Switch>
<Route exact path="/" component={Home} />
<Route path="/contact" component={Contact} />
<Route path="/about" component={About} />
</Switch>
</div>
</div>
</Router>
);
}
}
export default App;
这是我的 index.js
import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter } from "react-router-dom";
import App from "./App";
import "./index.css";
ReactDOM.render(
<BrowserRouter>
<App />
</BrowserRouter>,
document.getElementById("root")
);
还有我的 package.json
{
"name": "jardinteresa",
"version": "0.1.0",
"private": true,
"dependencies": {
"bootstrap": "^4.3.1",
"react": "^16.10.2",
"react-dom": "^16.10.2",
"react-router-dom": "^5.1.2",
"react-scripts": "^3.2.0"
},
"devDependencies": {},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
【问题讨论】:
-
你用的是两次BrowserRouter为什么?
-
检查我发布了改进的代码stackoverflow.com/a/58470552/6544460。
-
@VahidAkhtar 是的,这就是问题所在,复制粘贴问题。谢谢!
-
如果对你有帮助,请给stackoverflow.com/a/58470552/6544460投票
-
@VahidAkhtar
Thanks for the feedback! Votes cast by those with less than 15 reputation are recorded, but do not change the publicly displayed post score.
标签: javascript reactjs react-router react-router-dom