Использование apollo-upload-client
(https://www.npmjs.com/package/apollo-upload-client) с реакционно-нативным. Я шаг за шагом следовал руководству и кое-как получал ошибку сети от Apollo, она даже не доходила до бэкэнда.
How I'm calling from component:
const [addNewProduct, { data, error }] = useMutation(ADD_PRODUCT);
const [image, setImage] = useState(undefined);
const fileAttempt = () => {
ImagePicker.showImagePicker(options, (response) => {
if (response.didCancel) {
console.log("User cancelled image picker");
} else if (response.error) {
console.log("ImagePicker Error: ", response.error);
} else {
const file = new ReactNativeFile({
uri: response.uri,
type: response.type,
name: "foodimage.png",
});
setImage(file);
}
});
};
<Button
onPress={async () => {
console.log('beforeupload', image);
try {
await addNewProduct({
variables: {
image,
},
});
} catch (err) {
console.log('err', err);
}
}}
Add Product
</Button>
Mutation:
export const ADD_PRODUCT = gql`
mutation($image: Upload) {
addProduct(
name: "New Prod3"
description: "My New Prod"
image: $image
price: 15.25
category: "5ea355f25cb0c91350e0ba2f"
) {
name
description
price
}
}
`;
При отладке и в реагиотроне запрос отправляется как:
Хотя, когда я использую JSON.stringify(image)
, это показывает, что изображение не нулевое или не пустое:
Мутация действительно работает. Я создал множество продуктов через graphiql и заставил его работать с помощью веб-проекта React, но, похоже, не могу заставить его работать с реагирующим