2016-06-09 8 views
0

미들웨어에서 정적 요구 사항을 확인하도록 설정했습니다. 페이지가 렌더링되기 전에 비동기 데이터를 기본적으로 준비합니다. 내 API 호출 함수를 전달하는 동안 문제가 발생했습니다. getWaitingListPosition 토큰 내부 그래서 같은 경로 :구성 요소 클래스 내에서 현재 경로를 가져올 수 없습니다.

export default class WaitingListPage extends React.Component { 
    static need = [ 
    getWaitingListPosition(this.props.routeParams.token) 
    ] 

    ... 
} 

나는이 구성 요소에서 액세스되는 반응 - 라우터 v2.4.1에게

URL을 사용 cannot read props of undefined

이 말하는 오류를 얻을 : https://mywebsite.com/w/:token

답변

1

정적 메서드는 인스턴스 (this) 속성에 액세스 할 수 없습니다. routeParams의 지주를 가져 와서 함수를 호출하도록해야합니다.

static need = (routeParams) => { 
    // make sure to return a promise 
    return getWaitingListPosition(routeParams.token) 
} 

업데이트

이이처럼 렌더링 ... 뭔가 동안 호출해야합니다.

// assuming a promise, call the static method on the routed component 
RoutedComponent.need(routeParams) 
.then((data) => { 
    render(<RoutedComponent data={data}/>) 
} 
+0

나는이 방법으로 변경하면 추가로'[]''{}' – Ilja

+0

좋은 지적, 내 불량에 대한 교환해야'getWaitingListPosition '기능을 실행하지 않습니다 믿습니다. onEnter 유형 이벤트를 만들려고합니까? –

+0

어떤면에서는 컴포넌트 렌더링 전에이 함수를 실행하려고합니다. API에서 물건을 가져 와서 렌더링을 계속합니다. – Ilja