私はReactを初めて利用しています。私の状況は次のようなものです:ポンド記号なしでリアクタ・ルータを作るには?
私はReactにページを持っていますが、Reactブラウザの履歴ではすべてのURLに#記号が必要です。したがって、URLは次のようになります。http://www.somedomain.com/path/#/login。このURLをコールバック用のサードパーティのURLに送信する必要があります(http://www.thirdparty.com/verify?callback=http%3A%2F%2Fwww.somedomain.com%2Fpath%2F%23%2Floginなど)。問題は、URLに#を許可しないことです。彼らが許す唯一のURLフォーマットはhttp://www.somedomain.com/path/loginなので、urlの後ろにいくつかのパラメータを追加して、最終的にはコールバックhttp://www.somedomain.com/path/login?code=something&state=somestateになります。
私はこれをどのように達成できますか? ApacheまたはNginxのURLの書き換えを含むすべての可能な解決策が受け入れられ、Reactルータソリューションに限定されません。前もって感謝します!
私のコードは以下の通りです:あなたは歴史プロバイダとしてbrowserHistory
を使用する必要があります
class App extends Component {
constructor(props) {
super(props);
this.state = {
};
}
render() {
const appHistory = useRouterHistory(createHashHistory)({ queryKey: false });
return (
<Router history={appHistory}>
<Route path="/" component={Main}>
<IndexRoute component={Home} />
<Route path="login" component={Login} />
<Route path="mypics" component={MyPics} onEnter={requireAuth} />
</Route>
</Router>
);
}
}
ありがとう!それが正しい方法です。しかし、私はまだハッシュヒストリーが大好きです。ハッシュヒストリーでは、私のページはサーバーにリクエストを送信しませんが、ブラウザ履歴ではサーバーにリクエストを送信します。私は個人的にそれを好まない。コールバックのために別の特別なURLを使用して、私のハッシュヒストリにリダイレクトしようとします。とにかくありがとう! –