React-router : 경로를 통해 구성 요소에 데이터 전달

PDXIII

경로, 원하는 경로 (슬러그), 해당 구성 요소 및 궁극적으로 하위 경로 (nestedRoutes)에 대한 정보를 포함하는 데이터 개체를 사용하여 내 앱의 라우팅을 생성합니다. 경로에 중첩 된 경로가있는 경우 구성 요소에 데이터 개체로 전달하고 예를 들어 사이드 바 탐색을 위해 구성 요소에서 사용하고 싶습니다.

라우팅이 잘 작동하지만 nestedRoutes={route.nestedRoutes}구성 요소에 데이터가 전달 되지 않습니다 .

원한다면 내 코드 스 니펫을 살펴보십시오.

var data = {

  "routes": [
    {
      "title": "MLS Styleguide",
      "slug": "/mls-styleguide",
      "component": MLSStyleguide,
      "nestedRoutes": [
        {
          "title": "Basic Typography",
          "slug": "/mls-styleguide",
          "component": Typography,
          "isIndexRoute": true
        },
        {
          "title": "Form & Fields",
          "slug": "/mls-styleguide/forms-fields",
          "component": FormsFields
        },
        {
          "title": "Form Sections",
          "slug": "/mls-styleguide/form-sections",
          "component": FormSections
        },
        {
          "title": "Filters",
          "slug": "/mls-styleguide/filters",
          "component": Filters
        },
        {
          "title": "Side Panels & Containers",
          "slug": "/mls-styleguide/side-panels-containers",
          "component": SidePanelsContainers
        },
        {
          "title": "Tiles & Content",
          "slug": "/mls-styleguide/tiles-content",
          "component": TilesContent
        },
        {
          "title": "Tooltips & Notifications",
          "slug": "/mls-styleguide/tooltips-notifications",
          "component": TooltipsNotifications
        }
      ]
    },
    {
      "title": "Playground",
      "slug": "/playground",
      "component": Playground
    }
  ]
}



module.exports = (
  <Route path="/" component={App}>
    <IndexRoute component={Home}/>

    {data.routes.map(
      function(route) {
        if (route.nestedRoutes) {
          return (
            <Route path={route.slug} nestedRoutes={route.nestedRoutes} key={route.title} component={route.component}>

              {route.nestedRoutes.map(
                function(nestedRoute) {

                  if (nestedRoute.isIndexRoute) {
                    return (
                      <IndexRoute  key={nestedRoute.title} component={nestedRoute.component}/>
                    )
                  } else {
                    // {console.log(nestedRoute.slug)}
                    return (
                      <Route path={nestedRoute.slug} key={route.title} component={nestedRoute.component}/>
                    )
                  }
                }
              )}
            </Route>
          )
        } else {
          // console.log(route.slug)
          return <Route path={route.slug} foo="bar" key={route.title} component={route.component}/>
        }
      }
    )}
  </Route>
)

올바른 방향에 대한 의견이나 힌트를 환영합니다. 감사합니다!

편집하다

수신 구성 요소의 코드입니다. 궁금하지 마세요! getInitialState()함수 의 링크 데이터 는 현재 해결 방법으로 사용됩니다. 구성 요소가 실제로 수신하면 this.props.nestedRoutes제거됩니다.

나는 당신이 아이디어를 얻길 바랍니다!

export default React.createClass({
  getInitialState(){
    return {
      links: [
        {
          "title": "Basic Typography",
          "slug": "/mls-styleguide/"
        },
        {
          "title": "Form & Fields",
          "slug": "/mls-styleguide/forms-fields"
        },
        {
          "title": "Form Sections",
          "slug": "/mls-styleguide/form-sections"
        },
        {
          "title": "Filters",
          "slug": "/mls-styleguide/filters"
        },
        {
          "title": "Side Panels & Containers",
          "slug": "/mls-styleguide/side-panels-containers"
        },
        {
          "title": "Tiles & Content",
          "slug": "/mls-styleguide/tiles-content"
        },
        {
          "title": "Tooltips & Notifications",
          "slug": "/mls-styleguide/tooltips-notifications"
        },
      ]
    }
  },

  render() {
    return (
      <div>
        <Sidebar className="left">
          <SideNavbar links={this.state.links}/>
          {/*<SideNavbar links={this.props.nestedRoutes}/>*/}
        </Sidebar>
        <div className="content-container">
          {console.log(this.props.nestedRoutes)}
          <h2>MLS Styleguide</h2>

            {this.props.children}
        </div>
      </div>
    )
  }
})
PDXIII

제공된 솔루션을 이해할 수없는 것 같습니다.

하지만 해결 방법을 찾았습니다. 방금 데이터를 가져 와서 별도의 파일에 넣고 두 파일 모두에 가져 왔습니다. 목적에 부합하고 단순하며 이루어집니다.

여러분의 지원에 감사드립니다!

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ReactJS : 경로에서 데이터를 가져와 상위 구성 요소를 통해 구성 요소에 전달

분류에서Dev

React의 중첩 된 구성 요소를 통해 데이터 전달

분류에서Dev

React Router를 통해 json에서 데이터 전달

분류에서Dev

React에서 여러 구성 요소를 통해 데이터를 전달하는 방법은 무엇입니까?

분류에서Dev

react-router에서 하위 구성 요소로 변수 전달

분류에서Dev

React Selector : 두 구성 요소를 통해 onChange 이벤트를 다시 전달

분류에서Dev

VueJs-vue-router를 사용하여 subRoutes 구성 요소에 데이터 전달

분류에서Dev

React Native에서 자식 구성 요소에서 부모 구성 요소로 데이터를 전달합니까?

분류에서Dev

구성 요소에서 구성 요소로 데이터 전달

분류에서Dev

부모 구성 요소에서 자식 라우터 구성 요소로 데이터를 전달하는 React router dom은 props.match를 전달하지 않습니다.

분류에서Dev

formik을 사용하여 React에서 한 구성 요소에서 다른 구성 요소로 데이터 전달

분류에서Dev

kefirjs를 사용하여 React 구성 요소에 데이터 전달

분류에서Dev

React Router-선택한 구성 요소를 부모에게 전달

분류에서Dev

함수 소품을 자식 구성 요소에 전달 (링크 및 경로 구성 요소를 통해)

분류에서Dev

React에서 Route를 통해 소품을 전달합니다. 구성 요소 트리의 자식에서 다른 구성 요소로 속성 보내기

분류에서Dev

React v16 – 래퍼 구성 요소를 통해 자식에서 부모로 ref 전달

분류에서Dev

이 구성 요소를 화살표 함수에 전달 [React]

분류에서Dev

In React에서 history.push를 사용하여 구성 요소에서 자식 구성 요소로 객체를 전달하고 데이터를 읽는 방법

분류에서Dev

React : 다른 구성 요소에 표시하기 위해 onclick 버튼에서 매핑 된 데이터 전달

분류에서Dev

한 구성 요소에서 다른 구성 요소로 데이터 전달

분류에서Dev

React Router-Route의 함수를 통해 위치 소품 전달

분류에서Dev

React-Ajax 데이터가 하위 구성 요소로 전달되지 않음

분류에서Dev

React Router : this.props.location을 navbar 구성 요소에 전달

분류에서Dev

중첩 파일 업로드 React 구성 요소에서 부모 구성 요소로 데이터를 전달할 수 없습니다.

분류에서Dev

자식 구성 요소와 부모 구성 요소간에 데이터를 전달할 필요없이 내 React 앱에서`fetch` 요청을 어디에 배치해야합니까?

분류에서Dev

ngFor를 통해 인터페이스 개체를 사용자 지정 구성 요소에 전달

분류에서Dev

Ember 구성 요소에서 모델로 데이터 전달

분류에서Dev

React-다른 js 파일의 한 구성 요소에서 다른 구성 요소로 API 데이터를 어떻게 전달할 수 있습니까?

분류에서Dev

React.js의 자식 구성 요소에서 부모 구성 요소로 데이터를 전달하는 방법

Related 관련 기사

  1. 1

    ReactJS : 경로에서 데이터를 가져와 상위 구성 요소를 통해 구성 요소에 전달

  2. 2

    React의 중첩 된 구성 요소를 통해 데이터 전달

  3. 3

    React Router를 통해 json에서 데이터 전달

  4. 4

    React에서 여러 구성 요소를 통해 데이터를 전달하는 방법은 무엇입니까?

  5. 5

    react-router에서 하위 구성 요소로 변수 전달

  6. 6

    React Selector : 두 구성 요소를 통해 onChange 이벤트를 다시 전달

  7. 7

    VueJs-vue-router를 사용하여 subRoutes 구성 요소에 데이터 전달

  8. 8

    React Native에서 자식 구성 요소에서 부모 구성 요소로 데이터를 전달합니까?

  9. 9

    구성 요소에서 구성 요소로 데이터 전달

  10. 10

    부모 구성 요소에서 자식 라우터 구성 요소로 데이터를 전달하는 React router dom은 props.match를 전달하지 않습니다.

  11. 11

    formik을 사용하여 React에서 한 구성 요소에서 다른 구성 요소로 데이터 전달

  12. 12

    kefirjs를 사용하여 React 구성 요소에 데이터 전달

  13. 13

    React Router-선택한 구성 요소를 부모에게 전달

  14. 14

    함수 소품을 자식 구성 요소에 전달 (링크 및 경로 구성 요소를 통해)

  15. 15

    React에서 Route를 통해 소품을 전달합니다. 구성 요소 트리의 자식에서 다른 구성 요소로 속성 보내기

  16. 16

    React v16 – 래퍼 구성 요소를 통해 자식에서 부모로 ref 전달

  17. 17

    이 구성 요소를 화살표 함수에 전달 [React]

  18. 18

    In React에서 history.push를 사용하여 구성 요소에서 자식 구성 요소로 객체를 전달하고 데이터를 읽는 방법

  19. 19

    React : 다른 구성 요소에 표시하기 위해 onclick 버튼에서 매핑 된 데이터 전달

  20. 20

    한 구성 요소에서 다른 구성 요소로 데이터 전달

  21. 21

    React Router-Route의 함수를 통해 위치 소품 전달

  22. 22

    React-Ajax 데이터가 하위 구성 요소로 전달되지 않음

  23. 23

    React Router : this.props.location을 navbar 구성 요소에 전달

  24. 24

    중첩 파일 업로드 React 구성 요소에서 부모 구성 요소로 데이터를 전달할 수 없습니다.

  25. 25

    자식 구성 요소와 부모 구성 요소간에 데이터를 전달할 필요없이 내 React 앱에서`fetch` 요청을 어디에 배치해야합니까?

  26. 26

    ngFor를 통해 인터페이스 개체를 사용자 지정 구성 요소에 전달

  27. 27

    Ember 구성 요소에서 모델로 데이터 전달

  28. 28

    React-다른 js 파일의 한 구성 요소에서 다른 구성 요소로 API 데이터를 어떻게 전달할 수 있습니까?

  29. 29

    React.js의 자식 구성 요소에서 부모 구성 요소로 데이터를 전달하는 방법

뜨겁다태그

보관