React-Query useMutation:不可分配给“mutationkey”类型的参数

dev*_*dev 15 typescript reactjs react-query

我有一个 api 调用,看起来像

const getMutationService = () => {
  return {
    createMeme: async (
      _private: string,
      templateId: string,
      file: Blob,
      memeText?: string,
      title?: string,
      tags?: Array<string>,
    ): Promise<MemeCreateMemeResponse | undefined> => {
      return await memeApi.memePost({
        _private,
        templateId,
        file,
        memeText,
        title,
        tags,
      });
    },
  };
};
Run Code Online (Sandbox Code Playgroud)

我在另一个钩子中调用它,例如

const mutationService = getMutationService();



 const { mutate: createMeme } = useMutation(mutationService.createMeme);
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误

类型参数 '(_private: string, templateId: string, file: Blob, memeText?: string, title?: string, Tags?: Array) => Promise<MemeCreateMemeResponse | undefined>' 不可分配给“MutationKey”类型的参数。

我已经用相同的模式进行了其他突变调用。为什么这个会抛出这个突变关键错误?使困惑

TkD*_*odo 29

useMutation只能接受一个参数。如果需要多个参数,请使用对象。

  • 举个例子将不胜感激。 (5认同)
  • https://tkdodo.eu/blog/mastering-mutations-in-react-query#mutations-only-take-one-argument-for-variables (2认同)