で同じコードを呼び出す:私はthis.props.match.params.languageをチェックし、それぞれの子要素に追加する必要がは、ルータ反応し、私は私のアプリの主成分の次のルートを持っている各ルート要素
<div>
<h1><Link to="/">Home</Link></h1>
<Switch>
<Route exact path="/" component={FirstPage} />
<Route exact path="/:language?/second" component={SecondPage} />
<Route exact path="/:language?/account" component={AccountPage} />
<Route exact path="/:language?/add" component={AddNewPage} />
<Route component={NoMatch} />
</Switch>
</div>
を(これは反応ルータの小道具)現在の言語を設定するために。しかし、各コンポーネントWiilMountのこのコードは、私の心の上に配線されているように見えます。でも、私はこのチェックを単一の関数に入れて、それをすべてのcomponentWiilMountと呼び、this.props.match.params.languageの小道具を渡します。とにかくそれはコードの混乱です。たとえば、私が100のルートを持っているなら、私はこのチェックを100回追加する必要があります。 また、このコードをメインコンポーネントのライフサイクルに追加することについて考えています。ページが変更されたときに呼び出されますが、ここには反応ルータのプロップはありません。 これはもっと良い解決策を知っているかもしれませんか?
Jacob、返信ありがとうございます。 私はこのアプローチを試みましたが、この場合componentDidMount、LanguageSelectorからはLanguageSelectorコンポーネントだけが呼び出されます。 例えば、(/ add)のように直接childルートを開くと、 "LanguageSelector"のcomponentDidMoutは呼び出されません。 – Kholiavko
私が提案しているのは、常に 'LanguageSelector'がマウントされていることです。 – Jacob
うん、私の悪い、私は明日ミスを犯した。今度はもう一度試してみてください。 [こちらはデモです](https://codepen.io/pshrmn/pen/YZXZqM?editors=1010) 助けてくれてありがとう! – Kholiavko