【发布时间】:2022-01-01 10:13:05
【问题描述】:
我有以下功能,并且有两个警报。第一个Alert显示settingsChangedRoute是true,所以在setSettingsChanged(settingsChangedRoute)之后;据我了解,settingsChanged 的值也应该为真。但这是错误的,我不明白为什么。请帮忙修复它,它应该是true。
const [settingsChanged, setSettingsChanged] = useState(false);
//...
const load = async () => {
if (!!(route?.params)) {
const settingsChangedRoute = route.params.settingsChanged;
Alert.alert(`settingsChangedRoute === ${settingsChangedRoute}`);
setSettingsChanged(settingsChangedRoute);
}
const savedMode = await AsyncStorage.getItem('mode');
if (!!savedMode) {
const savedBlocked = await AsyncStorage.getItem('blocked');
if (savedBlocked) {
setBlocked(JSON.parse(savedBlocked));
}
setMode(savedMode);
const savedTurn = await AsyncStorage.getItem('turn');
setTurn(savedTurn);
const savedFieldSize = await AsyncStorage.getItem('fieldSize');
const parcedFieldSize = JSON.parse(savedFieldSize);
setFieldSize(parcedFieldSize);
const savedDifficulty = await AsyncStorage.getItem('difficulty');
setDifficulty(savedDifficulty);
Alert.alert(`settingsChanged === ${settingsChanged}`);
if (settingsChanged) {
setInitialFieldState();
setSettingsChanged(false);
} else {
const fieldStateJSON = await AsyncStorage.getItem('fieldState');
if (!!fieldStateJSON) {
setFieldState(JSON.parse(fieldStateJSON));
}
}
} else {
setInitialFieldState();
}
}
【问题讨论】:
标签: javascript react-native use-state