ホームページ > 記事 > ウェブフロントエンド > React-Routerで更新せずにURLのパラメータを変更する
今回は React-Router で URL を更新せずにパラメータを変更する方法を紹介します。 React-Router で URL を更新せずにパラメータを変更する場合の 注意事項 について説明します。見て。
問題
今日ページを書いているときに問題を見つけました。それは、次のような React Router の Url パラメーター受け渡し関数の使用です:export class MainRouter extends React.Component { render() { return ( <BrowserRouter> <Switch> ... <Route exact path={'/channel/:channelId'} component={ChannelPerPage}/> ... </Switch> </BrowserRouter> ); } }公式ドキュメントによると、これはChannelPerPageコンポーネント
this.props.match.paramsを使ってurlパラメータの値を取得するのですが、channelIdが1から2に変わった時など、このURL配下のURLのパラメータ部分だけを変更するとページが更新されないことが分かりました。
解決策
情報を調べた結果、根本的な原因は、プロパティの変更によってコンポーネントが再レンダリングされるのではなく、状態の変更のみがコンポーネントの再レンダリングを引き起こすことであることがわかりました。 URL パラメータは props に属しているため、URL パラメータを変更してもコンポーネントが再レンダリングされることはありません。 後で、React コンポーネントにオーバーライド可能なメソッドがあることを発見しましたcomponentWillReceiveProps(nextProps) { ... }このメソッドは、props が変更されたときに呼び出されるため、このメソッドを使用して nextProps を取得し、変更することができます。コンポーネントを再レンダリングできるように、このメソッドでコンテンツを状態にします。 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨書籍:
vue2.0 入力ボックスのリアルタイム取得と更新を実装する手順の詳細な説明
以上がReact-Routerで更新せずにURLのパラメータを変更するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。