Функция рендера не вызывается - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь заставить свой компонент реагирования рендериться в Meteor Я не вижу никаких сообщений об ошибках или чего-либо в консоли, однако компонент не отображается.

Я использую react-router. Я добавил операторы журнала, и кажется, что функция renderRoutes () действительно вызывается, также я вижу ошибки в консоли, когда я изменяю каталоги для моего imports (я получаю ошибку, если я изменяю первый оператор импорта на import {Home} from '../home/blah'). Я не совсем уверен, что попробовать дальше.

Вот мой роутер, который находится в client/imports/lib/router.js.

import React from 'react';
import { Router, Route, Switch } from 'react-router';
import {createBrowserHistory} from 'history';

import {Home} from '../home/home';
import {Login} from '../login/login';
import {Connect} from '../connect/connect';

const browserHistory = createBrowserHistory();

export const renderRoutes = () => (
  <Router history={browserHistory}>
    <Switch>
      <Route exact path="/" component={Home}/>
      <Route exact path="/login" component={Login}/>
      <Route exact path="/connect" component={Connect}/>
    </Switch>
  </Router>
);

Вот моя домашняя страница. Другие страницы имеют похожую структуру. Домашняя страница находится в client/imports/home/home.js.

import React, { Component } from 'react';


export default class Home extends Component {

  constructor(){
   super()
   this.state = {
    }
  }

  render() {
    return (
      <div><h1>hello from the home page</h1></div>
    );
  }
}

Наконец, это мой main.js. Это в client/main.js.

import { Meteor } from 'meteor/meteor';
import { render } from 'react-dom';
import { renderRoutes } from './imports/lib/router.js';
import './main.html';

Meteor.startup(() => {
  render(renderRoutes(), document.getElementById('app'));
});

Опять же, я не вижу сообщений об ошибках. Домашняя страница просто не отображается. Я поместил console.log в конструктор для компонента Home, и я ничего не вижу. Я не уверен, что в React есть что-то, чего я не понимаю, или мне нужно изменить способ использования маршрутизатора.

Пожалуйста, дайте мне знать, что я должен попробовать дальше, и если есть какая-либо дополнительная информация, которую я должен включить.

Спасибо!

1 Ответ

1 голос
/ 10 июня 2019

Если вы экспортируете компонент, используя export default

export default class Home extends Component {

, вы должны импортировать его следующим образом:

import Home from '../home/home';

Узнайте больше о именованных и экспортируемых по умолчанию


В будущем - назад к источнику, сначала проверьте исходный код (из документов ) (обычно работает)- нетрудно увидеть разницу;)

...