У меня есть экран с кнопками для выбора количества игроков в игре. Нажатие любой из этих кнопок вызывает функцию, передает соответствующий номер в функцию, сохраняет этот номер в асинхронном хранилище и затем переходит к следующему экрану. Смотрите код ниже:
//Example of the buttons:
<Text style={styles.text}>
How Many Players?
</Text>
<PrimaryButton
onPress={() => this.startRound(3)}
label="3"
>
</PrimaryButton>
<PrimaryButton
onPress={() => this.startRound(4)}
label="4"
>
</PrimaryButton>
//The function:
startRound = (num_players) => {
AsyncStorage.setItem('Num_Players', num_players);
this.props.navigation.navigate('player_names_screen');
}
На следующем экране, если я пытаюсь использовать AsyncStorage.getItem, чтобы получить это число, чтобы я мог что-то с ним делать, я просто получаю ноль. Смотрите код ниже:
constructor (props) {
super(props);
this.state = {
get_players: null
}
}
componentWillMount = () => {
this.getNumPlayers();
var players = this.state.get_players;
alert(players);
}
getNumPlayers = async () => {
let players = await AsyncStorage.getItem('Num_Players');
this.setState({get_players: players});
}
Я использую функцию оповещения, чтобы увидеть, что я получаю от использования AsyncStorage.getItem, и, как я уже говорил, он показывает «ноль». Как говорится в заголовке, я установил async-хранилище из Reaction-native-сообщества и использую «import AsyncStorage from '@ react-native-community / async-storage';».