You want to:
Discuss required changes to current 'hook-ish' implementation for Hooks support.
Details:
As you can see here, we've got a nice wrapper on top AsyncStorage, to mimic hooks usage.
This discussion here is to come up with better and valid implementation, that leverages hooks API.
Example implementation could look like this:
function useAsyncStorage(key, defaultValue) {
const [storageValue, updateStorageValue] = useState(defaultValue);
useEffect(() => {
getStorageValue();
}, []);
async function getStorageValue() {
let value = defaultValue;
try {
value = (await AsyncStorage.getItem(key)) || defaultValue;
} catch (e) {
// handle here
} finally {
updateStorageValue(value);
}
}
async function updateStorage(newValue) {
try {
await AsyncStorage.setItem(key, newValue);
} catch (e) {
// handle here
} finally {
getStorageValue();
}
}
return [storageValue, updateStorage];
}
The problem in here is that, once we got a value inside AsyncStorage, we'll be getting two rerenders one component mounting - one returning the default value, second the actual stored data.
I'm more than happy to discuss this, so please let me know what you think.
You want to:
Discuss required changes to current 'hook-ish' implementation for Hooks support.
Details:
As you can see here, we've got a nice wrapper on top
AsyncStorage, to mimic hooks usage.This discussion here is to come up with better and valid implementation, that leverages hooks API.
Example implementation could look like this:
The problem in here is that, once we got a value inside AsyncStorage, we'll be getting two rerenders one component mounting - one returning the default value, second the actual stored data.
I'm more than happy to discuss this, so please let me know what you think.