React 找不到导出的 renderRoutes 函数

React cannot find exported renderRoutes function

我正在开发我的第一个 meteor/react 应用程序,我正在尝试使用 react-router。但是,当我尝试 运行 应用程序时,我似乎无法导入 renderRoutes 函数。

我正在尝试跟随这里的路由器部分:

https://guide.meteor.com/react.html

路由器位于 myapp/client/lib/router.js。这是我的路由器代码:

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

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

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

我在 myapp/server/main.js 中有一个 meteor.startup() 函数,这就是我的全部内容:

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

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

当我尝试 运行 meteor run 时,这是我看到的:

Error: Cannot find module '../client/lib/router.js'

为什么?感谢您的帮助!

这是因为您的路由器位于

myapp/client/lib/router.js

而您的主文件位于

我的应用程序/服务器/main.js

所以除非你打算实现server-side-rendering,否则你可以将第二个代码移动到

我的应用程序/客户端/main.js

这是由于 Meteor 的 project-structure 意识。如果文件包含在名为 clientserver 的文件夹中,它将仅在此环境中可用。

更多阅读指南:https://guide.meteor.com/structure.html#special-directories