Могу ли я использовать маршрут внутри коммутатора? - PullRequest
0 голосов
/ 30 января 2020

Я работаю над маршрутами для моего приложения rails / response и redux, но я не могу поместить Route внутрь компонента Switch, например:

<Switch>
  <Route exact path="/" component={Splash} />
  <AuthRoute path="/login" component={LoginFormContainer} />
  <AuthRoute path="/signup" component={SignupFormContainer} />
  <ProtectedRoute path="/home" component={HomeIndexContainer} />
</Switch>

Когда я пытаюсь сделать это, я получаю сообщение об ошибке:

Uncaught Error: 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, or you might have mixed up default and named imports.

Я дважды проверил, и я действительно экспортирую и импортирую свой Splash компонент правильным способом; и когда я попытался изменить Route на AuthRoute или ProtectedRoute, он смог отрендерить. Есть идеи, почему это так?

Вот как выглядит мой компонент:

import React from 'react';
import { Link } from 'react-router-dom';

const Splash = () => (
  <div className="splash-page">
    <h1>Music for everyone.</h1>
    <p>Millions of songs. No credit card needed.</p>
    <Link to="/signup">{'Get Spotify Free'.toUpperCase()}</Link>
  </div>
);

export default Splash;

1 Ответ

0 голосов
/ 30 января 2020

Звучит так, как будто вы импортируете маршрут некорректно: как выглядит ваш импорт?

import {Switch, Route} из "Reaction-router-dom";

См. https://reacttraining.com/react-router/web/guides/quick-startfor подробнее

...