im按照指南尝试设置一个react-router-dom高阶组件。我有一个问题在说..
元素类型无效:预期为字符串(对于内置组件)或类/函数(对于复合组件),但得到了:对象。您可能忘记了从定义文件中导出组件,或者可能混淆了默认导入和命名导入。 检查
component
的渲染方法。
这是我的代码。
App.js
import React from 'react';
import {
BrowserRouter as Router,
Route,
} from 'react-router-dom';
import Navigation from './Navigation';
import LandingPage from './Landing';
import SignUpPage from './SignUp';
import SignInPage from './SignIn';
import PasswordForgetPage from './PasswordForget';
import HomePage from './Home';
import AccountPage from './Account';
import * as routes from '../constants/routes';
const App = () =>
<Router>
<div>
<Navigation />
<hr/>
<Route exact path={routes.LANDING} component={() => <LandingPage />} />
<Route exact path={routes.SIGN_UP} component={() => <SignUpPage />} />
<Route exact path={routes.SIGN_IN} component={() => <SignInPage />} />
<Route exact path={routes.PASSWORD_FORGET} component={() => <PasswordForgetPage />} />
<Route exact path={routes.HOME} component={() => <HomePage />} />
<Route exact path={routes.ACCOUNT} component={() => <AccountPage />} />
</div>
</Router>
export default App;
和我的index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './components/App';
import { unregister } from './registerServiceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
unregister();
谢谢。
答案 0 :(得分:0)
我相信您正在混淆反应路由器df.Grade.str.translate(str.maketrans({'%':''})).astype(float)
的道具值。要将组件分配给Route
,有几种不同的方法。一个与Route
一起使用,另一个与component
一起使用。
render
您使用的是<Route ... component={LandingPage} />
<Route ... render={() => <LandingPage />} />
语法,但使用的是render
道具。将component
更改为component
,或将render
更改为() => <LandingPage />
(对于其他路由c也是一样)。