rn redux-offline delete request data/cache


rn redux-offline delete request data/cache



just got stuck in configuring react-native offline requests. I want to use it to send data and image files as base64 array with it, well i got it working but after that caches grows constantly day 140mb/4h while testing in real-device, that suppose not the way it should work. What i am missing in general?.



store configuration with custom request(converting images to base64)


offlineConfig2 = {
...offlineConfig,
persistCallback: () => {
console.log('Rehydratation complete');
},
persistOptions: {
key: 'primary',
storage:AsyncStorage
},
rehydrate: true,
// @overwrite effect

effect: (effect, action) => {
console.log(`Executing effect for ${action.type}:`, effect);
photoArr = ;
if (effect.photo)
photoArr = effect.photo;
promises = photoArr.map(function(photo){
return base64 = RNFetchBlob.fs.readFile(photo.key, 'base64')
.then((data) => {
return data
}).catch(err => console.log(err));
});

return new Promise(
function (resolve, reject) {
Promise.all(promises).then(function(base64Photo) {
body = effect.body;
if(Array.isArray(base64Photo) && base64Photo.length > 0) {
body = Object.assign({photoArr: base64Photo}, body);
}
fetch(effect.url, { // eslint-disable-line
method: effect.method,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer' + effect.token
},
body: JSON.stringify(body),
})
.then(res => {
console.log('response', res);
resolve('ok');
return res.ok
? res.json()
: Promise.reject(res.text().then(msg => new Error(msg)));
})
.catch((error) => {
reject(new Error(`Unable to retrieve events0.n${error.message}`));
}
);
})
.catch((error)=> {
reject(new Error(`Unable to retrieve events 1.n${error.message}`));
}
);
});
},
// @overwrite discard
discard: (error, action, retries) => {
console.log(error);
//return true;
return retries > 3;
},
// @overwrite retry
retry: (action) => (action.meta.urgent ? 100 : 10000),
//returnPromises: false,
/*
queue: (action) => {
console.log(action);
}
*/
// @overwrite persist
};
export const store = createStore(rootReducer, undefined, offline(offlineConfig2));



An action itself.


export const sendRepairPhotos = (identifier, token, auto_number, kilometers, message, photoPath, photoArray = ) => {
console.log('send repair photos');
return ({
type: REPAIR_PHOTOS,
//payload: { token },
meta: {
offline: {
effect: { url: global.apiUrl + 'trucks_malfunctions/register', method: 'POST', body: {km: kilometers,
auto_id: auto_number,
identifier: identifier,
message: message
},
photo: photoArray,
token:token },
}
}
})
};



if helped I can attach another info, but basically faced cache size problem, as well how that react-native caches work at all? Does it take effect in memory usage or just sits unused? How can i manage to remove them automatically and optimize? every comment is welcome.









By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Comments

Popular posts from this blog

paramiko-expect timeout is happening after executing the command

Opening a url is failing in Swift

Export result set on Dbeaver to CSV