Я использую контекстный API в реагировании для передачи данных дочерним компонентам.У меня проблема в том, что мне нужно выполнить запрос graphql, используя данные, переданные из контекста в качестве переменной.Я создал HOC и успешно смог получить доступ к данным из реквизита внутри функции рендеринга, но я не могу получить доступ к значению в запросе graphql.
context.js
import React, { Component } from 'react';
export const Context = React.createContext();
export const { Consumer, Provider } = Context;
export const WithContext = (Component) => {
return (props) => (
<Consumer>
{value => <Component {...props} data={value} />}
</Consumer>
)
}
Component.js
import React, { Component } from 'react';
import { Link } from 'react-router-dom';
import { graphql, compose } from 'react-apollo';
import gql from 'graphql-tag';
import { GetMerchantLocations, GetMerchant } from '../../data/queries';
import { Consumer, WithContext } from './context';
class Locations extends Component {
render(){
console.log(this.props.data.data);
return (
<div className="locations-container">
<div className="flex grid-header vertical-center">
<div className="item">
<h3>Manage Locations</h3>
</div>
<div className="item">
<div className="btn">Create Location</div>
</div>
</div>
<div className="table-row table-header grid" style={rowStyle}>
<div>Location</div>
<div>Manager</div>
<div></div>
<div></div>
</div>
<div className="table-body">
</div>
</div>
);
}
}
export default graphql(GetMerchantLocations, {
options: (props) => ({
variables: {
id: this.props.data.data.id
},
})}
)(WithContext(Locations));