【问题标题】:React cannot find exported renderRoutes functionReact 找不到导出的 renderRoutes 函数
【发布时间】:2019-10-18 12:06:45
【问题描述】:

我正在开发我的第一个流星/反应应用程序,我正在尝试使用反应路由器。但是,当我尝试运行应用程序时,我似乎无法导入 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'

为什么?任何帮助表示赞赏!

【问题讨论】:

    标签: reactjs meteor react-router


    【解决方案1】:

    这是因为你的路由器位于

    myapp/客户端/lib/router.js

    而您的主文件位于

    myapp/服务器/main.js

    因此,除非您打算实现服务器端渲染,否则您可以将第二个代码移至

    myapp/客户端/main.js

    这是由于 Meteor 的项目结构意识。如果文件包含在名为 clientserver 的文件夹中,则该文件仅在此环境中可用。

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

    【讨论】:

      猜你喜欢
      • 2018-09-07
      • 1970-01-01
      • 2022-07-06
      • 2017-12-06
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      相关资源
      最近更新 更多