ページを更新せずに React-Router で Url パラメータを処理する方法

php中世界最好的语言
リリース: 2018-05-31 10:01:39
オリジナル
1493 人が閲覧しました

今回は、React-Router で URL パラメーターを処理する方法を説明します。注意事項は何ですか?実際のケースを見てみましょう。

問題

今日ページを書いているときに問題を見つけました。それは、次のような React Router の Url パラメーター受け渡し関数の使用です:

export class MainRouter extends React.Component {
  render() {
    return (
      <BrowserRouter>
        <Switch>
          ...
          <Route exact path={&#39;/channel/:channelId&#39;} 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 サイトの他の関連記事に注目してください。

推奨読書:

vue プロジェクトをサーバーにパッケージ化する方法

ウェブストームを使用して *.vue ファイルを追加する方法

以上がページを更新せずに React-Router で Url パラメータを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!