Не записывает в состояние выбранный файл
Файл выбирается с помощью documentPicker, однако не записывается в состояние из-за несогласованности типов. Состояние используется для записи выбранного файла в FormData и отправки на сервер. Подскажите, в чем ошибка и как ее можно исправить.
const [singleFile, setSingleFile] = useState<string | File>('');
const selectFile = async () => {
try {
const res = await DocumentPicker.getDocumentAsync({
copyToCacheDirectory: true,
});
// Printing the log realted to the file
console.log('res : ' + JSON.stringify(res));
// Setting the state to show single file attributes
setSingleFile(res);
} catch (err) {
setSingleFile('');
}
};
Ошибка в строке setSingleFile(res);
следующая:
Argument of type 'DocumentPickerResult' is not assignable to parameter of type 'SetStateAction<string | File>'. Type 'DocumentPickerSuccessResult' is not assignable to type 'SetStateAction<string | File>'.ts(2345) const res: DocumentPicker.DocumentPickerResult
Изначально состояние было записано через null
, после <string | undefined>(undefined),
однако это никак не исправило ситуацию. В результате оставила const [singleFile, setSingleFile] = useState<any>('');
ошибку перестало выдавать.
В консоль выдает следующее сообщение:
res : {"assets":[{"mimeType":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","uri":"file:///data/user/0/host.exp.exponent/cache/DocumentPicker/0523d89112e1.xlsx","name":"Мониторинг.xlsx","size":1565693}],"canceled":false}