检查`component`

时间:2018-08-10 03:19:54

标签: reactjs firebase firebase-authentication react-router-dom

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();

谢谢。

1 个答案:

答案 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也是一样)。