2016-11-09 7 views
0

Я следовал за Apollo documentation, чтобы обеспечить две мутации (createUser затем signInUser) на одном React компонента, но одна мутация («внешний» один - signInUser) не доступен для моего кода (this.props.signInUser is not a function). Возможно, моя настройка на стороне сервера маскирует одну мутацию, но я не вижу, где. Помогите оценить:Множественные мутации Apollo

Полный текст here.

EDIT: тот же выпуск при использовании compose, см. code.

ответ

2

Вам просто нужно указать мутации при передаче их в компонент, иначе они ВСЕ будут называться mutate и переопределить друг друга.

(Используя props функцию)

Вот полный пример с именованными мутациями:

https://gist.github.com/Siyfion/a2e9626ed431f8ff91af2c9b8cba1d67

+0

Спасибо, но я уже переименовал мутации, как указано в документах: '{name: 'createUser'}' и '{name: 'signInUser'}'. И когда не указывается такое имя, я считаю, что по умолчанию «mutate», а не «мутация». У вас есть ссылка на документацию Apollo об этом «реквизите»? –

+0

Взгляните на вторую половину: http://dev.apollodata.com/react/mutations.html#calling-mutations –

+0

Спасибо, я попытался использовать 'реквизит', но такую ​​же проблему. Я все еще подозреваю, что это что-то в моей настройке рендеринга на стороне сервера (мой компонент более высокого порядка «apollo»). –

0

Это было вызвано моей apollo компонента высшего порядка, который сделал более сложные вещи, чем просто вызов Apollo's graphql (связанный с рендерингом на стороне сервера) и каким-то образом должен маскировать свойства. Я обошел это поведение SSR для этих мутаций (не нужно), см. code.