response.body是文件的base64字符串。如何将其保存到字符串变量中?
fetchCustom(store.apiURL, {
trtyp: 'file_download',
seskey: store.userSessionKey,
id: item.iddoc
}).then(response => {
const data = response.body as FetchData[];
console.log('gotten base64', data);
let base64File:string = data;
Filesystem.writeFile({
path: "filename.txt",
data: base64File, //"base64 data",
directory: Directory.Documents,
}).then(response => {
}).catch(error => {
console.log('error a', error.message);
});
}).catch(error => {
console.log('error b', error.message);
});
您似乎正在尝试将 FetchData[] 类型的数组分配给字符串变量 base64File,这会导致 TypeScript 错误。
如果response.body确实是一个Base64编码的字符串,作为FetchData[]中更大结构的一部分,您应该首先访问保存Base64字符串的每个FetchData项的特定属性。例如,如果每个 FetchData 项都有一个属性 base64,您可能需要从数组中提取此属性,或者如果您只对第一项感兴趣(假设 API 始终只返回一个包含文件数据的项),则您可以可以做:
fetchCustom(store.apiURL, {
trtyp: 'file_download',
seskey: store.userSessionKey,
id: item.iddoc
}).then(response => {
// Assuming 'base64' is the property containing the Base64 string
// and you are expecting only one item in the array.
const base64File: string = response.body[0].base64;
console.log('gotten base64', base64File);
Filesystem.writeFile({
path: "filename.txt",
data: base64File, // Use the extracted Base64 string
directory: Directory.Documents,
}).then(response => {
console.log('File written', response);
}).catch(error => {
console.log('error writing file', error.message);
});
}).catch(error => {
console.log('error fetching data', error.message);
});
请根据 FetchData[] 数组中对象的实际结构将属性名称 base64 调整为合适的值。另外,请确保在数组为空或属性不存在的情况下进行正确的错误处理。
希望这对您有用。