react-native - useState 在开关 onValueChange 上落后一步
问题描述
所以我正在渲染一个必须切换值的开关
const [useBioAuth, setUseBioAuth] = useState<boolean>(false);
这是我的开关
<Switch
onValueChange={toggleSwitch}
trackColor={{ true: colors.secondary }}
thumbColor={colors.input.bg.normal}
style={style.marginT10}
value={useBioAuth}
/>
这是我的 toggleSwitch 功能
const toggleSwitch = useCallback(() => {
setUseBioAuth(!useBioAuth);
console.log('toggle '+ useBioAuth)
_storeData();
}, [_storeData, useBioAuth]);
const _storeData = useCallback(async () => {
try {
await AsyncStorage.setItem('useBioAuth', JSON.stringify(useBioAuth));
if (!useBioAuth) {
await AsyncStorage.removeItem('useBioAuth');
}
} catch (error) {
//TODO
}
}, [useBioAuth]);
但是状态总是比切换落后一步控制台日志在它应该为假时显示为真,反之亦然
请问有什么想法吗?谢谢你
解决方案
推荐阅读
- android - 使用 Workmanager 进行 Hilt Instrumentation 测试不工作
- c# - 从 C# 中的 SQL Server 中选择带有换行符 ("\n") 的记录
- google-cloud-platform - AutoML Tables Batch Prediction - 丢失记录
- python - 为什么 SSE 在 python 中的特定簇数处增加?(K 均值聚类)
- java - 无法在 Quartz 作业中注入依赖项
- html - 我可以在 HTML 中输入一个变量并将其提供给 CSS 以更新仪表读数吗?
- google-cloud-platform - 如何在 Google Cloud Shell/Instance 中移动 Firebase 目录?
- regex - Primefaces fileUpload 禁用可执行文件正则表达式问题
- c++ - 如何使用 qmake & mingw 构建示例 cppkafka?
- ag-grid - 有人有 AG-Grid 的法语翻译吗?