2016-06-09 2 views
0

У меня есть промежуточное программное обеспечение, проверяющее статические потребности, которое по существу готовит данные асинхронизации до того, как страница будет отображаться, я столкнулся с проблемой, пытаясь передать мою функцию вызова api getWaitingListPosition токен, который внутри маршрут как так:Не удалось получить текущий маршрут внутри класса компонентов

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

    ... 
} 

Я получаю сообщение об ошибке говорящее cannot read props of undefined

это использует реагировать-маршрутизатор v2.4.1

URL, что этот компонент доступен с: https://mywebsite.com/w/:token

ответ

1

Статические методы не имеют доступа к экземпляру (this). Вы должны сделать так, чтобы он взял прозвище routeParams и затем вызвал функцию.

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

Update

Это нужно будет называться во время рендеринга ... что-то вроде этого.

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

Я считаю, что изменить его к такому подходу не выполняет функцию '' getWaitingListPosition, кроме '[]' должны быть поменяны местами для '{}' – Ilja

+0

Хороший вопрос, мой плохой. Вы пытаетесь создать событие типа onEnter? –

+0

В некотором смысле, я пытаюсь запустить эту функцию перед отображением компонента, он получает материал из api и продолжает рендеринг – Ilja

Смежные вопросы