Динамические реакции в эстафете современных мутаций - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть приложение, которое имеет несколько профилей для данного пользователя.Профиль пользователя можно переключать из заголовка приложения, так что переключение может происходить с любой страницы / маршрута в приложении.

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

mutation UserProfile_Mutation($input: !UserProfileInput) {
 updateProfile(input: $input) {
   profile {
     ...Page1_profile
     ...Page2_profile
     ...etc
   }     
  }
}

Я мог бы создать отдельный запрос на мутацию для каждой страницы, а затем заставить функцию мутации искать запрос на основе маршрута ... Кажется, это такработал бы, но чувствует себя многословно и не особенно элегантно.

Есть ли какой-нибудь более чистый способ, которым я могу динамически указать, какие фрагменты я хочу?

1 Ответ

0 голосов
/ 05 декабря 2018

Вы можете условно запускать или пропускать фрагменты.Взгляните на это: Условные поля ретрансляции

Итак, вы можете передать дополнительные аргументы вашей мутации (возможно, объекту нового типа?), А затем использовать эти значения для запуска илине фрагменты.Например:

mutation UserProfile_Mutation($input: !UserProfileInput, $extraArg: Boolean!) {
 updateProfile(input: $input) {
   profile {
     ...Page1_profile  @include(if: $extraArg)
     ...Page2_profile  @include(if: $extraArg) // or any other arg
     ...etc
   }     
  }
}

Надеюсь, это поможет!:)

...