简体   繁体   中英

Routing in Meteor with React & React-Router

I want to make a second private page like links in MeteorJS with react, called landing, create the Landing.js component and import it into the routes file but at the time of going to the route in the browser "http: // localhost: 3000/landing "sends me to the NotFound page, which may be wrong? I would be grateful for the help

'../imports/routes/routes';

import React from 'react';
import Meteor from 'meteor/meteor';
import { Router, Route, browserHistory } from 'react-router';

import Vitae from '../ui/Vitae';
import Logeo from '../ui/Logeo';
import Registro from '../ui/Registro';
import NoEncontrado from '../ui/NoEncontrado';
import Landing from '../ui/Landing';
  // flecha tracker
  Tracker.autorun(() => {
    const paginasUnautenticadas = ['/', '/registro'];
    const paginasAutenticadas = ['/vitae', '/landing'];
    const enPaginaPublica = () => {
      if(Meteor.userId()) {
        browserHistory.replace('/vitae');
      } 
    };
    const enPaginaPrivada = () => {
      if(!Meteor.userId()) {
        browserHistory.replace('/');
      }
    };
    export const cambioAutenticacion = (estaAutenticado) => {
        const pathname = browserHistory.getCurrentLocation().pathname;
        const esPaginaUnautenticada = paginasUnautenticadas.includes(pathname);
        const esPaginaAutenticada = paginasAutenticadas.includes(pathname);
        if(esPaginaUnautenticada && estaAutenticado) {
            browserHistory.replace('/vitae');
        } else if (esPaginaAutenticada && !estaAutenticado) {
            browserHistory.replace('/');
        }
    };
    export const routes = (
        <Router history={browserHistory}> 
          <Route path="/" component={Logeo}/>
          <Route path="/vitae" component={Vitae}/>
          <Route path="/registro" component={Registro}/>
          <Route path="*" component={NoEncontrado}/>
          <Route path="/landing" component={Landing}/>
        </Router>
      );
});

and my component Landing.js

import React from 'react';
export default class Landing extends React.Component {
  render() {
    return(
      <div>
      <h3>Landing Page</h3>
      </div>
    );
  };
}

You have your Landing route after your wildcard "Not Found" route

      <Route path="*" component={NoEncontrado}/>
      <Route path="/landing" component={Landing}/>

I'm pretty sure that if you switch these two over, it will work as expected :)

      <Route path="/landing" component={Landing}/>
      <Route path="*" component={NoEncontrado}/>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM