gpt4 book ai didi

javascript - 路由与react-router(-redux)不匹配

转载 作者:行者123 更新时间:2023-11-28 18:35:53 26 4
gpt4 key购买 nike

我一直在使用react、redux、react-router 和react-redux-router 绑定(bind)创建单页面应用程序。

路由 http://localhost:3001/register 与路由器根本不匹配,并且 Cannot GET/register 返回到浏览器,因为服务器显然不这样做不知道路线。我对 React-Redux 堆栈比较陌生,可能缺少一些非常基本的东西。

编辑:IndexRoute 正在工作,并且正在应用程序组件内显示主页组件。

Edit2:我没有使用服务器端渲染,而是使用 webpack-dev-server 进行开发。

但以下是迄今为止的相关代码片段:

entry.js

const store = createStore( 
reducer, //from reducers.js
applyMiddleware(routerMiddleware(browserHistory))
);

const history = syncHistoryWithStore(browserHistory, store);

render(
<Provider store={store}>
<Router history={history} routes={routes} /> //routes from routes.js
</Provider>,
document.getElementById('app')
);

reducer .js

const rootReducer = combineReducers({
RegisterForm,
routing: routerReducer //provided by react-router-redux
});

export default rootReducer;

routes.js

const routes = (
<Route path='/' component={App}>
<IndexRoute component={Home} />
<Route name='register' path='register' component={RegisterForm} />
</Route>
);

export default routes;

Navigation.jsx(在 App.jsx 内渲染)

import React from 'react';
import {Link} from 'react-router';

export default class Navigation extends React.Component {
render() {
return (
<div className="mdl-layout mdl-js-layout mdl-layout--fixed-header">

<header className="mdl-layout__header">
<div className="mdl-layout__header-row">
<span className="mdl-layout-title">there!</span>
<div className="mdl-layout-spacer"></div>
<nav className="mdl-navigation mdl-layout--large-screen-only">
<Link className="mdl-navigation__link" to="/">Home</Link>
<Link className="mdl-navigation__link" to="register">Register</Link>
</nav>
</div>
</header>

<div className="mdl-layout__drawer">
<span className="mdl-layout-title">there!</span>
<nav className="mdl-navigation">
<Link className="mdl-navigation__link" to="/">Home</Link>
<Link className="mdl-navigation__link" to="register">Register</Link>
</nav>
</div>

<main className="mdl-layout__content">
<div className="page-content">
{this.props.children}
</div>
</main>

</div>
);
}
}

也许对某人来说这是显而易见的,我在这里缺少什么。如果您需要更多代码,请告诉我。

最佳答案

正如您所说,问题是您的后端不知道如何处理对 /register 的请求。解决方案是告诉您的后端针对此类请求返回 react 应用程序(与对 / 的请求相同)。

如果您使用纯 webpack-dev-server 进行开发,我不确定最好的方法是什么,但您可以看看这里的答案,它可能会起作用:Stating directive templateUrl relative to root

关于javascript - 路由与react-router(-redux)不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37093329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com