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 意识。如果文件包含在名为 client
或 server
的文件夹中,它将仅在此环境中可用。
更多阅读指南:https://guide.meteor.com/structure.html#special-directories
我正在开发我的第一个 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 意识。如果文件包含在名为 client
或 server
的文件夹中,它将仅在此环境中可用。
更多阅读指南:https://guide.meteor.com/structure.html#special-directories