中继现代突变的动态响应
Dynamic responses in relay modern mutations
我有一个应用程序,其中包含给定用户的多个配置文件。可以从应用程序的 header 切换用户个人资料,因此可以从应用程序中的任何 page/route 进行切换。
因为切换可以发生在任何地方,所以我发现我需要为每个可能的页面检索片段,以便在变更成功后,无论哪个路由处于活动状态,页面都会更新。这既不高效,也不可扩展。我当前的突变查询看起来像这样:
mutation UserProfile_Mutation($input: !UserProfileInput) {
updateProfile(input: $input) {
profile {
...Page1_profile
...Page2_profile
...etc
}
}
}
我可以为每个页面创建一个不同的变异查询,然后让变异函数根据路由查找查询...这似乎可行,但感觉冗长而且不是特别优雅。
有没有更简洁的方法可以动态指定我想要的片段?
您可以运行或有条件地跳过片段。看看这个:
Relay Conditional Fields
因此,您可以将额外的参数传递给您的变异(可能是一种新型对象?),然后将此值用于 运行 或不用于片段。例如:
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
}
}
}
希望对您有所帮助! :)
我有一个应用程序,其中包含给定用户的多个配置文件。可以从应用程序的 header 切换用户个人资料,因此可以从应用程序中的任何 page/route 进行切换。
因为切换可以发生在任何地方,所以我发现我需要为每个可能的页面检索片段,以便在变更成功后,无论哪个路由处于活动状态,页面都会更新。这既不高效,也不可扩展。我当前的突变查询看起来像这样:
mutation UserProfile_Mutation($input: !UserProfileInput) {
updateProfile(input: $input) {
profile {
...Page1_profile
...Page2_profile
...etc
}
}
}
我可以为每个页面创建一个不同的变异查询,然后让变异函数根据路由查找查询...这似乎可行,但感觉冗长而且不是特别优雅。
有没有更简洁的方法可以动态指定我想要的片段?
您可以运行或有条件地跳过片段。看看这个: Relay Conditional Fields
因此,您可以将额外的参数传递给您的变异(可能是一种新型对象?),然后将此值用于 运行 或不用于片段。例如:
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
}
}
}
希望对您有所帮助! :)