У меня есть функциональный компонент, ListKeys
. Когда он загружается, я хочу установить пустой массив ключей, равный списку всех ключей, извлеченных из хранилища. Вот что я получил на данный момент:
const ListKeys = props => {
const [keys, setKeys] = useState([]);
const [areKeysLoaded, setAreKeysLoaded] = useState(false);
useEffect(() => {
if(!areKeysLoaded){
loadSavedKeys();
setAreKeysLoaded(true);
console.log(keys)
}
});
async function loadSavedKeys(){
try {
var allKeys = await AsyncStorage.getAllKeys();
console.log(allKeys);
setKeys(allKeys);
}
catch {
console.log("Error: Cannot access saved data.");
}
}
return (
<View></View>
);
};
export default ListKeys;
Этот код правильно получает список ключей и выводит его на консоль. Это делается в строке 16: console.log(allKeys);
Однако, когда я тогда setKeys(allKeys);
, это не работает. Я знаю это, потому что строка 9: console.log(keys)
выводит пустой массив.
Я предполагаю, что не могу просто установить массив значений состояния для другого массива, но у меня недостаточно опыта с JS или Реагируйте Родной, чтобы знать почему.
Может кто-нибудь сказать мне, как правильно установить массив keys
в массив allKeys
?