React-router 在导航栏中添加 Link
React-router adding Link in navbar
React 新手,我正在尝试使用 React-router
v4 在我的 material-ui
工具栏中添加一个 link
到主页,但我不断收到错误消息:
Element type is invalid: expected a string (for built-in components)
or a class/function (for composite components) but got: undefined. You
likely forgot to export your component from the file it's defined in.
Check the render method of LandingToolBar
.
我试图在此处复制基本示例 https://reacttraining.com/react-router/web/example/basic,而是将顶部列表放在另一个名为 LandingToolBar
的组件中,但我看不到它可以正常工作。这是我的 index.js
:
import React from 'react'
import ReactDOM from 'react-dom'
import App from './App'
import injectTapEventPlugin from 'react-tap-event-plugin'
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
injectTapEventPlugin();
ReactDOM.render(
<MuiThemeProvider>
<App />
</MuiThemeProvider>,
document.getElementById('app')
);
我的app.js
:
import React from 'react'
import {Route, BrowserRouter, Switch} from 'react-router-dom'
import LoginPage from "./containers/LoginPage";
import SignUpPage from "./containers/SignUpPage";
import HomePage from "./components/landing/HomePage";
import LandingToolBar from "./components/landing/LandingToolBar";
class App extends React.Component {
render() {
return (
<BrowserRouter>
<div>
<LandingToolBar/>
<Switch>
<Route path="/" exact component={HomePage}/>
<Route path="/login" component={LoginPage}/>
<Route path="/signup" component={SignUpPage}/>
</Switch>
</div>
</BrowserRouter>
)
}
}
export default App;
以及我始终尝试呈现的工具栏组件 LandingToolBar
:
import React from 'react';
import Link from 'react-router-dom';
import {ToolbarGroup, ToolbarTitle, RaisedButton, Toolbar} from 'material-ui'
const LandingToolBar = () => (
<Toolbar>
<ToolbarGroup>
<ToolbarTitle text="ETFly"/>
<Link to="/">feafeaf</Link>
</ToolbarGroup>
</Toolbar>
);
export default LandingToolBar;
由于文档或 v4 内容中似乎没有太多解释,因此在路由部分上苦苦挣扎...
感谢您的帮助!
你需要像这样 import
Link
,它是 named import
而不是 default import
:
import {Link} from 'react-router-dom';
检查
的答案
React 新手,我正在尝试使用 React-router
v4 在我的 material-ui
工具栏中添加一个 link
到主页,但我不断收到错误消息:
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in. Check the render method of
LandingToolBar
.
我试图在此处复制基本示例 https://reacttraining.com/react-router/web/example/basic,而是将顶部列表放在另一个名为 LandingToolBar
的组件中,但我看不到它可以正常工作。这是我的 index.js
:
import React from 'react'
import ReactDOM from 'react-dom'
import App from './App'
import injectTapEventPlugin from 'react-tap-event-plugin'
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
injectTapEventPlugin();
ReactDOM.render(
<MuiThemeProvider>
<App />
</MuiThemeProvider>,
document.getElementById('app')
);
我的app.js
:
import React from 'react'
import {Route, BrowserRouter, Switch} from 'react-router-dom'
import LoginPage from "./containers/LoginPage";
import SignUpPage from "./containers/SignUpPage";
import HomePage from "./components/landing/HomePage";
import LandingToolBar from "./components/landing/LandingToolBar";
class App extends React.Component {
render() {
return (
<BrowserRouter>
<div>
<LandingToolBar/>
<Switch>
<Route path="/" exact component={HomePage}/>
<Route path="/login" component={LoginPage}/>
<Route path="/signup" component={SignUpPage}/>
</Switch>
</div>
</BrowserRouter>
)
}
}
export default App;
以及我始终尝试呈现的工具栏组件 LandingToolBar
:
import React from 'react';
import Link from 'react-router-dom';
import {ToolbarGroup, ToolbarTitle, RaisedButton, Toolbar} from 'material-ui'
const LandingToolBar = () => (
<Toolbar>
<ToolbarGroup>
<ToolbarTitle text="ETFly"/>
<Link to="/">feafeaf</Link>
</ToolbarGroup>
</Toolbar>
);
export default LandingToolBar;
由于文档或 v4 内容中似乎没有太多解释,因此在路由部分上苦苦挣扎...
感谢您的帮助!
你需要像这样 import
Link
,它是 named import
而不是 default import
:
import {Link} from 'react-router-dom';
检查