首頁  >  文章  >  web前端  >  如何在 React Router v4 中將自訂 Props 傳遞給子元件?

如何在 React Router v4 中將自訂 Props 傳遞給子元件?

Linda Hamilton
Linda Hamilton原創
2024-10-30 14:40:28731瀏覽

How to Pass Custom Props to Child Components in React Router v4?

如何將自訂Props 傳遞給React Router v4 中的子元件

問題:

範例程式碼:

<code class="javascript">// Parent Component
render() {
  return (
    <Router>
      <div>
        <Switch>
          <Route path="/" exact test="hi" component={Home} />
          <Route path="/progress" test="hi" component={Progress} />
          <Route path="/test" test="hi" component={Test} />
        </Switch>
      </div>
    </Router>
  );
}

// Child Component
render() {
  console.log(this.props); // Returns {match: {...}, location: {...}, history: {...}, staticContext: undefined}
}</code>

解:

要將自訂道具傳遞給子元件,請使用渲染道具來定義與路由內聯的元件:

<code class="javascript">// Parent Component
render() {
  return (
    <Router>
      <div>
        <Switch>
          <Route path="/" exact render={(props) => <Home test="hi" {...props} />} />
          <Route path="/progress" render={(props) => <Progress test="hi" {...props} />} />
          <Route path="/test" render={(props) => <Test test="hi" {...props} />} />
        </Switch>
      </div>
    </Router>
  );
}</code>

在子元件中,如下存取自訂道具:

<code class="javascript">render() {
  console.log(this.props.test); // Returns "hi"
}</code>

注意: 確保將{...props} 傳遞給子元件以保留對預設路由器props 的存取(例如,符合、位置、歷史記錄)。

以上是如何在 React Router v4 中將自訂 Props 傳遞給子元件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn