Graphql, react-apollo как передать переменную в запрос при загрузке состояния компонента

у меня есть простой компонент react, который должен загружать данные с сервера, когда пользователь спрашивает его. Проблема в том, что я не знаю, как передать динамическую переменную speakerUrl и получить к ней доступ до состояния загрузки компонента. Конечно, я могу получить доступ к нему из this.props.params, но компонент не загружен, и я не могу получить к нему доступ, когда я делаю запрос graphql. Запрос -QuerySpeaker работает нормально, когда я вручную установить переменную url.

маршрутизатор

<Route path="/speaker/:speakerUrl" component={SpeakerPage} />

компонент - SpeakerPage

import React from 'react';
import { graphql } from 'react-apollo';

import { QuerySpeaker } from '../redux/graphql/querys';

class SpeakerPage extends React.Component {
    render( ) {
        console.log( this.props );
        return (
            <div className="ui container">
                <div className="ui grid">
                    <div className="row">
                        Hello
                    </div>
                </div>
            </div>
        )
    }
}

export default graphql(QuerySpeaker, {
     options: ({ url }) => ({ variables: { url } }) <- here is my problem, how can i set this url variable?
})( SpeakerPage );

1 ответов


на основе react-apollo документация, аргумент, передаваемый options функция-это объект реквизита, переданный компоненту. Когда react-router отображает ваш компонент, он передает его params в качестве опоры. Это значит, что params должно быть свойством объекта, переданного в