私はテンプレートセットアップの下で2つの簡単なルート、挨拶とサインアップを持つ反応ルータの基本的な例を設定しようとしています。現在、ロード時にエラーは発生しませんが、アドレスバーに入力して/signup
ルートにアクセスしようとすると、次のエラーが表示されます。Cannot GET /signup
と理由を理解できません。基本的なルータのテンプレートの例 - URLアクセスなし
誰もがreact-router-dom
v4でこの問題に遭遇しましたか?この問題を解決し、URL経由でさまざまなパスへのナビゲートを成功させる方法を提案していただきありがとうございます。
ビルドイン反応リンクコンポーネントを使用してこれらのURLパスにアクセスしようとすると、リンクが正常に機能しますが、URLでページを更新すると、再びCannot GET signup
エラーが発生します。
app.js
import React from "react";
import NavigationBar from '../components/navigation-bar';
export class App extends React.Component {
render() {
return (
<div className="container">
<NavigationBar />
{this.props.children}
</div>
);
}
}
index.js
import React from 'react';
import ReactDOM from "react-dom";
import {Provider} from "react-redux";
import {createStore} from "redux";
import allReducers from "./reducers";
import {BrowserRouter as Router, Route, Switch} from "react-router-dom";
import {App} from "./components/app";
import {Greetings} from "./components/greetings";
import {Signup} from "./components/signup";
const store = createStore(allReducers);
ReactDOM.render(
<Provider store={store}>
<Router>
<App>
<Switch>
<Route exact path="/" component={Greetings} />
<Route path="/signup" component={Signup} />
</Switch>
</App>
</Router>
</Provider>, window.document.getElementById("app"));
greetings.js
import React from "react";
export class Greetings extends React.Component {
render() {
return (
<h2>
Greetings
</h2>
);
}
}
signup.js
import React from "react";
export class Signup extends React.Component {
render() {
return (
<h2>
SIGN UP
</h2>
);
}
}
ああ、それは仕事の並べ替えのようですが、今は '#'がURLにありますが、これを回避する方法はありますか? – AnchovyLegend
@AnchovyLegendこれを見てください - https://stackoverflow.com/questions/25086832/how-to-stop-in-browser-with-react-router – Arpit
@AnchovyLegendこれは、HashRouterの* hash *の意味です – Li357