React Route v4和PrivateRoute给出错误-React.createElement:类型无效

时间:2018-10-29 11:53:53

标签: reactjs react-router-v4

为什么会出现此错误?

  

警告:React.createElement:类型无效-预期为字符串   (对于内置组件)或类/函数(对于复合   组件),但得到:未定义。您可能忘记了导出   定义文件中的组件,否则您可能混淆了   默认导入和命名导入。

我的PrivateRoute.js如下所示:

<?= base_url(); ?>

我的导入调用如下:

const PrivateRoute = ({ component: Component, ...rest }) => (
  <Route
    {...rest}
    render={(props) =>
      (Auth.isUserAuthenticated()) ? (
        <Component {...props} {...rest} />
      ) : (
        <Redirect
          to={{
            pathname: "/login",
            state: { from: props.location }
          }}
        />
      )
    }
  />
);

export default PrivateRoute;

我正在这样使用它:

import HomePage from "../homepage/homepage";
import PrivateRoute from "../../modules/privateRoute";

1 个答案:

答案 0 :(得分:1)

似乎您尚未从其各自的文件中导出HomePage组件。请确保已使用export关键字导出了组件。

class HomePage extends React.Component {
    // your class implementation goes here
}
export default HomePage;

或者,您可能没有导入HomePage组件,在传递给PrivateRoute之前应该将其导入。

import HomePage from '../../path/to/HomePage';
<PrivateRoute exact path='/' component={HomePage} />