我正在为我的React Js应用程序做服务器端渲染。当我运行我的应用程序时,我得到了贝娄错误。
TypeError:_router2.default.ComputerOotMatch不是/home/./web/node_modules/react-router-config/matchRoutes.js:20:24位于Array.matchRoutes(/home../web/node_modules/react-router-config/matchRoutes.js:18:10)位于/home/./web/build/bundle.js:2250:53位于Layer.handle[as
server.js文件
import express from 'express';
import { matchRoutes } from 'react-router-config';
import Routes from './client/Routes';
import renderer from './helpers/renderer';
import createStore from './helpers/createStore';
const app = express();
app.use(express.static('public'));
app.get('*', (req, res) => {
const store = createStore(req);
const promises = matchRoutes(Routes, req.path)
.map(({ route }) => {
return route.loadData ? route.loadData(store) : null;
})
.map(promise => {
if (promise) {
return new Promise((resolve, reject) => {
promise.then(resolve).catch(resolve);
});
}
});
Promise.all(promises).then(() => {
const context = {};
const content = renderer(req, store, context);
if (context.url) {
return res.redirect(301, context.url);
}
if (context.notFound) {
res.status(404);
}
res.send(content);
});
});
app.listen(3000, () => {
console.log('Listening on prot 3000');
});
我知道它在哪里失败了,因为我刚做了同样的Udemy课程。如果要升级react-router-config,路由数组的根节点需要定义路径。参见:https://github.com/reacttraining/react-router/issues/6381。比如:
export default [
{
...App,
path: '/',
routes: [
{
...HomePage,
path: '/',
exact: true
},
{
...AdminsListPage,
path: '/admins'
},
{
...UsersListPage,
path: '/users'
},
{
...NotFoundPage
}
]
}
];
在我的存储区被调度之后,我调用,它将我发送到正确的视图,但我无法访问查询参数。我的其余代码可以在https://github.com/crh225/hotreactasp/tree/master/src/hotreactasp/content找到,谢谢!
当我使用url/Details时,我的浏览器会导航到该url,但不会更改视图。任何其他路由抛出404,因此它似乎可以识别路由,但不能更新。
我是vertx的新手,所以可能我做错了什么。我正在尝试实施以下路线: 这是避免在所有处理程序中重复此逻辑的正确方法吗? 我试图链接处理程序,处理程序从路径中读取参数,试图找到相应的用户,并将该用户放入上下文中。如果未找到用户,则返回状态代码400。否则将调用下一个处理程序。我想对参数应用相同的原则。 在尝试实现这一点时,我认为我发现了路径的问题,更具体地说是尾部的斜线和星形。文档中指出,后面的斜杠
我在react中编写了一个带有自动建议的简单搜索组件,它调用themoviedb。我正在使用react router dom,并在app.js中定义了如下路由参数: 搜索组件如下所示: 我的问题是,当点击链接时,它会改变url,但它会停留在同一个站点上。如果我不使用react路由器dom链接组件,只使用元素,它可以正常工作,但所有东西都会重新渲染。 **在app.js中更新我的react路由器代码
每个路由可以有不同的属性; 一些常见的属性是: path - 应用程序在特定路由上时在浏览器中显示的URL component - 当应用程序在特定路由上时要呈现的组件 pathMatch - 默认为’prefix’的可选属性。 确定是匹配完整的网址还是仅匹配开头。 当定义一个具有空路径字符串的路径设置pathMatch为’full’时,否则它将匹配所有路径。 children - 表示此路由的子
考虑以下事项: 我有一个应用模板,一个HeaderTemboard,和参数化的路由集与相同的处理程序(在应用模板)。我希望在没有找到东西的时候能够服务404路线。例如, /CA/SanFrancisco应该由区域查找和处理,而 /SanFranciscoz应该是404。 下面是我如何快速测试路线的。 问题是 /SanFranciscoz总是由区域页面处理,但我希望它是404。此外,如果我向第一个路