У меня проблема с react-apollo. Даже не вызывая запрос в классе Foo:
The operation 'FooQuery' wrapping 'Foo' is expecting a variable: 'id' but it was not found in the props passed to 'Apollo(Foo)'
class Foo extends React.Component {
render() {
return <div />
}
}
const FOO_QUERY = gql`
query FooQuery($id: ID!) {
foo(id: $id) {
bar
}
}
`
export default graphql(FOO_QUERY, { name: 'fooQuery' })(Foo)
Это свойство, позволяющее настроить имя опоры. Так что я могу вызвать: this.props.fooQuery
Ты прав, моя беда. Как вы используете этот компонент? Вы передаете ему опору id?
Пробую Foo.propTypes = { id: PropTypes.string.isRequired } и Foo.defaultProps = { id: 'a' }. Тот же результат
Да, но я думаю, что проблема в том, как вы используете этот экспортированный компонент в остальной части приложения, а не в том, как вы его определили. Если вы используете компонент, не передавая опору id, я думаю, вы получите эту ошибку.
@Tholle Работает как шарм, спасибо!
@Tholle, как сделать id необязательным? Я пытаюсь создать форму, в которой пользователь может вставлять или обновлять



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваш компонент выглядит правильно. Проблема не в том, как вы его определили, но вы должны убедиться, что передаете опору id вашему компоненту Foo, когда используете его в своем приложении:
<Foo id = "some_id" />
Не следует ли передавать в запрос переменную
idвместоname?