是否有与 Apollo 的 ReactNativeFile(来自 apollo-upload-client)等效的 URQL?

Is there an URQL equivalent of Apollo's ReactNativeFile (from apollo-upload-client)?

我正在使用 URQL 作为我的 React 本机 graphql 客户端。我喜欢使用该库,但似乎没有一种简单的方法可以将从 expo 图像选择器中选择的文件上传到我的节点服务器。

我进行了一些谷歌搜索,发现 Ben Awad video 他使用 ReactNativeFile 将结果转换为文件。 问题是这是唯一适合 apollo 客户端的方式。 urql有这样的东西吗?将 uri 和 base64 转换为 JS 文件的代码是什么样的?

...
if (!imageResult.cancelled) {
  const file = new ReactNativeFile({
    uri: imageResult.uri,
    type: imageResult.type,
    name: "picture"
  });

图片选择fn

const result = await ImagePicker.launchImageLibraryAsync({
  mediaTypes: ImagePicker.MediaTypeOptions.Images,
  allowsEditing: true,
  base64: true,
  aspect: [1, 1],
  quality: 1,
});
if (result.cancelled || !result.uri || !onSuccessful) return;
await onSuccessful(result);

根据 ReactNativeFile 的源代码 class (extract-files/public/ReactNativeFile.js) it just returns the same values you've entered. I don't see a problem to use plain object with same data. If you want to use this, you can, apollo-upload-client only exports ReactNativeFile from extract-files library (apollo-upload-client/public/ReactNativeFile.js)

可能 apollo-client 检查它是否是 instanceof ReactNativeFile class 但是,我认为 URQL 不会检查它。

上传文件请遵循官方URQL文档,不要使用apollo https://formidable.com/open-source/urql/docs/advanced/persistence-and-uploads/#file-uploads