4

graphql クエリで設定されたコンテキストに基づいて、さまざまなリンクを切り替える方法を実装したいと考えています。私がこれまでに行ったことは、このようなもので、うまく機能していますが、時間の経過とともに良い解決策にはならないようです。

const link = ApolloLink.from([
  HandlerLink1,
  HandlerLink2,
  ApolloLink.split(
    operation => operation.getContext().service === "x",
    LinkX,
    ApolloLink.split(
      operation => operation.getContext().service === "y",
      LinkY,
      ApolloLink.split(
        operation => operation.getContext().service === "z",
        LinkZ,
        LinkN
      )
    )
  )
]);

入れ子にするよりも良い方法はありますか?

4

1 に答える 1

0

私も同じ問題に遭遇しました。以下のコードは私にとってはうまくいきます

const client = new ApolloClient({
  cache,
  link: ApolloLink.split(
    (operation) => operation.getContext().clientName === 'link1',
    Link1, // <= apollo will send to this if clientName is "link1"

    ApolloLink.split(
      (operation) => operation.getContext().clientName === 'link2',
      Link2,// <= apollo will send to this if clientName is "link2"
      Link3,// <= else Link3 will run
    ),
  )
  resolvers: {},
})
于 2021-09-15T14:58:16.863 に答える