Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应本机:AsyncStorage.getItem不工作。我已经从react本地社区安装了AsyncStorage_Javascript_React Native_Asyncstorage - Fatal编程技术网

Javascript 反应本机:AsyncStorage.getItem不工作。我已经从react本地社区安装了AsyncStorage

Javascript 反应本机:AsyncStorage.getItem不工作。我已经从react本地社区安装了AsyncStorage,javascript,react-native,asyncstorage,Javascript,React Native,Asyncstorage,我有一个带有按钮的屏幕,可以选择游戏的玩家数量。单击这些按钮中的任何一个都会调用函数,将适当的数字传递到函数中,将该数字存储在异步存储中,然后导航到下一个屏幕。见下面的代码: //按钮示例: 有多少人? 这个.startRound(3)} label=“3” > 这个.startRound(4)} label=“4” > //职能: startRound=(玩家数量)=>{ AsyncStorage.setItem('Num\u Players',Num\u Players); 这个.prop

我有一个带有按钮的屏幕,可以选择游戏的玩家数量。单击这些按钮中的任何一个都会调用函数,将适当的数字传递到函数中,将该数字存储在异步存储中,然后导航到下一个屏幕。见下面的代码:

//按钮示例:
有多少人?
这个.startRound(3)}
label=“3”
>
这个.startRound(4)}
label=“4”
>
//职能:
startRound=(玩家数量)=>{
AsyncStorage.setItem('Num\u Players',Num\u Players);
这个.props.navigation.navigate('player_name_screen');

}
异步存储无法存储整数值,因此请将整数值转换为字符串

AsyncStorage.setItem('Num_Players', JSON.stringify(num_players)); 

请检查这个


你能在getNumLayers(或console.log)中显示警报吗?也许当你在componentWillMount方法中显示this.state.get_播放器时,状态还没有更新?我使用了这个:let players=wait AsyncStorage.getItem('Num_播放器')。然后(警报(播放器));我在警报中得到了“未定义”。在存储值时,我还将整数值转换为字符串。如果使用wait,则不需要使用“then”。你可以试着让玩家等待;提醒(玩家),所以当我在getNumPlayers函数中有提醒时,它就会工作。但是如果我将警报放在组件willmount中,在调用getNumPlayers之后,我得到的是“null”。所以我想不管我需要对这个数字做什么,我都应该在getNumPlayers函数中完成。特别是检查setState()的文档:setState()并不总是立即更新组件。它可以批处理更新或将更新推迟到以后。这使得在调用setState()之后立即读取This.state成为一个潜在的陷阱。这对我也有帮助。没有意识到我必须转换成字符串。谢谢
AsyncStorage.setItem('Num_Players', ''+num_players);