我正在开发我的第一个流星/反应应用程序,并且正在尝试使用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'
为什么?任何帮助表示赞赏!
答案 0 :(得分:1)
这是因为您的路由器位于
myapp / 客户端 /lib/router.js
主文件位于
myapp / 服务器 /main.js
因此,除非您打算实现服务器端渲染,否则可以将第二个代码移至
myapp / 客户端 /main.js
这是由于Meteor对项目结构的了解。如果文件包含在名为client
或server
的文件夹中,则该文件仅在此环境中可用。
要在指南中阅读的更多内容:https://guide.meteor.com/structure.html#special-directories