这些都是非常基本的问题,但universal-router
的文档没有解释这一点,它给出的例子在我的React项目中似乎不起作用。在哪里把通用路由器放入React以及如何定义链接?
我有这个在我index.js
:
import Router from 'universal-router';
import { HomeComponent, HelpComponent, AboutComponent } from './home.jsx';
const routes = [
{ path: '/', action:() => <HomeComponent /> },
{ path: '/home', action:() => <HomeComponent /> },
{ path: '/about', action:() => <AboutComponent /> },
{ path: '/help', action:() => <HelpComponent /> },
{ path: '*', action:() => <h1>Nope.</h1> }
];
const router = new Router(routes);
router.resolve({ path: '/' }).then(component => {
ReactDOM.render(component, document.getElementById('router-outlet'));
});
router.resolve({ path: '/help' }).then(component => {
ReactDOM.render(component, document.getElementById('router-outlet'));
});
router.resolve({ path: '/about' }).then(component => {
ReactDOM.render(component, document.getElementById('router-outlet'));
});
这在我App
组件,一个很简单的菜单:
export class App extends React.Component {
render() {
return(
<div>
<a href="/">Root</a> |
<a href="/home">Home</a> |
<a href="/help">Help</a> |
<a href="/about">About</a> |
<a href="/uijsklfdsse">404</a>
</div>
);
}
}
正如你看到的,这是非常简单的,我只是想来计算如何让这个工作。它几乎正是写入here,但它不起作用。出于某种原因,它总是被调用的AboutComponent
,并且当我点击一个链接时,浏览器似乎刷新了整个页面,因此它不像SPA。我有一种感觉,我把路线定义放在错误的地方,但我应该把它放在哪里?这是我应该如何定义链接?
我使用的是universal-router
,因为React-router
在安装时表示它已被弃用并由此替换。让我知道这是不是一个好主意。
我做到了。无论实际路径如何,解决方案总是会引发火灾。我实际上放弃了整个事情,现在就使用不同的路由器。我浪费了一整天的时间。 –