react-router : 다른 뷰에 중첩 된 경로를 표시 할 수 없습니다.

Fer Toasted

부모 구성 요소와 다른보기에 구성 요소를 표시하려고했지만 Link클릭하면 동일한보기, 첫 번째 부모 구성 요소와 바로 아래 자식 구성 요소에 두 구성 요소가 표시됩니다 .

간단한 장바구니 ( /cart)이며 클릭 Pay하면 체크 아웃 ( /cart/checkout)보기 로 리디렉션되어야합니다 . 그럼에도 불구하고 component바로 아래에 렌더링됩니다.

다른 경로로 설정하려고했지만 해당 경로에 component CheckoutData중첩하지 않으면 렌더링되지 않습니다.parent Cart.js

나는 이것을 달성하고 싶다.

Cart구성 요소가 렌더링되면 클릭 Pay Link하면 CheckoutData구성 요소 로 리디렉션됩니다 .

Cart.js

class Cart extends Component {
    // constructor and state

    removeItem(id) {
        // Axios call
    }

    componentDidMount() {
        //Axios call
    }

    render() {
        return (
            <div>
                <ParentNav />
                // content table
                        <Link to="/cart/checkout">
                            Pay
                        </Link>

                        <Link to="/">
                            Go back
                        </Link>
                    </div>
                </div>
                <Footer />
            </div>
        );
    }
}

CheckoutData.js

class CheckoutData extends Component {
    //constructor and state

    render () {
        return (
        <div>
            <ParentNav />
            <CheckoutForm  passToken={this.state.token} />
            <Footer />
        </div>
        )
    }
}

마지막으로 Home.js라우팅이 선언 된 위치

class Home extends React.Component {
    render() {
        return (
            <div>
                <HashRouter>
                    <Switch>
                        <Route exact path="/">
                            <App />
                        </Route>
                        <Route path="/cart">
                            <Cart />
                            <Route path="/cart/checkout"  exact component={CheckoutData}/>
                        </Route>
                        <Route
                            path="/product/:id"
                            children={<SingleProduct />}
                        />
                    </Switch>
                </HashRouter>
            </div>
        );
    }
}

메리 크리스마스 여러분!

드류리스

발행물

경로 내에 경로를 중첩했습니다.

<Route path="/cart">
  <Cart />
  <Route path="/cart/checkout" exact component={CheckoutData}/>
</Route>

경로 경로 "/ cart"는 "/ cart / checkout"을 포함하여 "/ pathXXXXX"경로와 일치하는 접두사입니다. 즉, 경로의 경로에 "/ cart"가 포함되어 있으면 해당 경로가 일치되고 렌더링됩니다. Switch일치하고 렌더링 경기.

다른 경로로 설정하려고 시도했지만 CheckoutData부모에 중첩되지 않으면 구성 요소 가 렌더링되지 않습니다 Cart.js.

그 이유 는 경로를 정의한 순서 때문일 수 있습니다. 다음과 같은 작업을 수행 한 경우 :

<Switch>
  <Route path="/cart">
    <Cart />
  </Route>
  <Route path="/cart/checkout" exact component={CheckoutData}/>
<Switch>

그런 다음 <Route path="/cart">나머지 경로가 무엇이든 관계없이 항상 먼저 일치하고 렌더링합니다.

해결책

경로를 재정렬하여 구체적인 경로 보다 구체적인 경로 를 정의하세요 . 대안은 모든에 소품 을 추가하는 것입니다 . 이는 매우 건조 하지는 않지만 지루하고 평범합니다.exact Route

<Switch>
  <Route
    path="/cart/checkout"       // <-- more specific path
    component={CheckoutData}/>
  <Route path="/cart">          // <-- less specific path
    <Cart />
  </Route>
  <Route
    path="/product/:id"
    children={<SingleProduct />}
  />
  <Route path="/">
    <App />
  </Route>
</Switch>

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

React-router가 중첩 된 페이지를로드 할 수 없습니다.

분류에서Dev

React Router는 여러 경로를 표시 할 수 없습니다.

분류에서Dev

중첩 된 경로에 ID를 전달할 수 없습니다.

분류에서Dev

각도 ui-router 중첩 뷰를 표시 할 수 없습니까?

분류에서Dev

Symfony 3에 포함 된 중첩 양식을 표시 할 수 없습니다.

분류에서Dev

StackLayout-XamarinForms에서 뷰를 다른 뷰 위에 표시 할 수 없습니다.

분류에서Dev

Firestore에서 중첩 된 데이터를 가져와 Recyclerview에 표시 할 수 없습니다.

분류에서Dev

내 UITableViewController를 중첩 된 UITableView에 연결할 수 없습니다.

분류에서Dev

중첩 된 얕은 경로를 사용할 때 link_to 올바른 경로를 사용할 수 없습니다.

분류에서Dev

중첩 된 개체에있는 배열로 개체를 푸시 할 수 없습니다.

분류에서Dev

onCreate 중에 invsibile 상태가 된 후 ListView를 표시 할 수 없습니다.

분류에서Dev

다른 Symbol 내에 중첩 된 Symbol을 조작 할 수 없습니다.

분류에서Dev

beautifulsoup을 사용하여 다른 태그 안에 중첩 된 태그를 추출 할 수 없습니다.

분류에서Dev

ui-router에서 중첩 된 뷰 내에 중첩 된 뷰를 가질 수 있습니까?

분류에서Dev

다른 div 내에 div를 성공적으로 중첩 할 수 없습니다.

분류에서Dev

중첩 된 패턴 일치를 수행 할 수 없습니다.

분류에서Dev

Postgres에 중첩 된 레코드를 삽입 할 수 없습니다.

분류에서Dev

Django Rest Framework에서 중첩 된 관계를 렌더링 할 수 없습니다.

분류에서Dev

Elastic Search 내에서 중첩 된 객체를 검색 할 수 없습니다.

분류에서Dev

중첩 된 formGroup의 값에 액세스 할 수 없습니다.

분류에서Dev

중첩 된 Javascript 개체에 액세스 할 수 없습니다.

분류에서Dev

중첩 된 JSON에 액세스 할 수 없습니다.

분류에서Dev

React Router를 사용하여 일치하는 중첩 경로를 가져올 수 없습니다.

분류에서Dev

중첩 된 경로는 모든 색인을 생성 할 수 없습니다.

분류에서Dev

React Router, params 뒤에 중첩 된 경로

분류에서Dev

react-router-redux로 context.router에 액세스 할 수 없습니다.

분류에서Dev

뷰에서 다른 뷰로 변수를 전달할 수 없습니다.

분류에서Dev

중첩 된 ipywidgets 상호 작용 함수를 사용할 때 표시되는 함수 이름을 억제 할 수 없습니다.

분류에서Dev

React-Router 활성 클래스가 중첩 된 경로에 대해 작동하지 않습니다.

Related 관련 기사

  1. 1

    React-router가 중첩 된 페이지를로드 할 수 없습니다.

  2. 2

    React Router는 여러 경로를 표시 할 수 없습니다.

  3. 3

    중첩 된 경로에 ID를 전달할 수 없습니다.

  4. 4

    각도 ui-router 중첩 뷰를 표시 할 수 없습니까?

  5. 5

    Symfony 3에 포함 된 중첩 양식을 표시 할 수 없습니다.

  6. 6

    StackLayout-XamarinForms에서 뷰를 다른 뷰 위에 표시 할 수 없습니다.

  7. 7

    Firestore에서 중첩 된 데이터를 가져와 Recyclerview에 표시 할 수 없습니다.

  8. 8

    내 UITableViewController를 중첩 된 UITableView에 연결할 수 없습니다.

  9. 9

    중첩 된 얕은 경로를 사용할 때 link_to 올바른 경로를 사용할 수 없습니다.

  10. 10

    중첩 된 개체에있는 배열로 개체를 푸시 할 수 없습니다.

  11. 11

    onCreate 중에 invsibile 상태가 된 후 ListView를 표시 할 수 없습니다.

  12. 12

    다른 Symbol 내에 중첩 된 Symbol을 조작 할 수 없습니다.

  13. 13

    beautifulsoup을 사용하여 다른 태그 안에 중첩 된 태그를 추출 할 수 없습니다.

  14. 14

    ui-router에서 중첩 된 뷰 내에 중첩 된 뷰를 가질 수 있습니까?

  15. 15

    다른 div 내에 div를 성공적으로 중첩 할 수 없습니다.

  16. 16

    중첩 된 패턴 일치를 수행 할 수 없습니다.

  17. 17

    Postgres에 중첩 된 레코드를 삽입 할 수 없습니다.

  18. 18

    Django Rest Framework에서 중첩 된 관계를 렌더링 할 수 없습니다.

  19. 19

    Elastic Search 내에서 중첩 된 객체를 검색 할 수 없습니다.

  20. 20

    중첩 된 formGroup의 값에 액세스 할 수 없습니다.

  21. 21

    중첩 된 Javascript 개체에 액세스 할 수 없습니다.

  22. 22

    중첩 된 JSON에 액세스 할 수 없습니다.

  23. 23

    React Router를 사용하여 일치하는 중첩 경로를 가져올 수 없습니다.

  24. 24

    중첩 된 경로는 모든 색인을 생성 할 수 없습니다.

  25. 25

    React Router, params 뒤에 중첩 된 경로

  26. 26

    react-router-redux로 context.router에 액세스 할 수 없습니다.

  27. 27

    뷰에서 다른 뷰로 변수를 전달할 수 없습니다.

  28. 28

    중첩 된 ipywidgets 상호 작용 함수를 사용할 때 표시되는 함수 이름을 억제 할 수 없습니다.

  29. 29

    React-Router 활성 클래스가 중첩 된 경로에 대해 작동하지 않습니다.

뜨겁다태그

보관