React-Native: AsyncStorage.getItem не работает. Я установил AsyncStorage из реактивного сообщества - PullRequest
0 голосов
/ 31 марта 2019

У меня есть экран с кнопками для выбора количества игроков в игре. Нажатие любой из этих кнопок вызывает функцию, передает соответствующий номер в функцию, сохраняет этот номер в асинхронном хранилище и затем переходит к следующему экрану. Смотрите код ниже:

//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';».

1 Ответ

1 голос
/ 31 марта 2019

AsyncStorage не может хранить значение интергера, поэтому преобразуйте значение интергера в строку

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

или

AsyncStorage.setItem('Num_Players', ''+num_players); 

Пожалуйста, отметьте это

https://snack.expo.io/@vishal7008/convert-variable-stored-in-asyncstorage-then-state-to-number

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...