Как показать количество раз, когда пользователь вошел в систему с помощью AsyncStorage - PullRequest
1 голос
/ 27 марта 2019

В настоящее время я пытаюсь показать полный журнал того, сколько раз пользователь вошел в систему с помощью AsyncStorage.

Это потому, что я хочу показать модальное всплывающее окно при первом входе пользователя в систему.время.

Есть ли способ добиться этого?

Ранее я был в состоянии отобразить данные пользователя в файле console.log, который показывает электронную почту и пароль в строковом формате.

Тем не менее, я не уверен, куда идти.Будет ли цикл for подходящим решением, или есть метод, который уже достигает этого?

ЭКРАН ВХОДА -

_loginUser = async () => {
        const { password, email } = this.state;
        if(email == '' || password == '') {
            alert('Please enter all fields');
        }
        else {
            //save data using AsyncStorage
            let loginArray = {
                email: email,
                password: password
            }

            //key of the item to set
            AsyncStorage.setItem('loginArray',
            JSON.stringify(loginArray));
            console.log(loginArray);

            // const logsInfo = await AsyncStorage.getAllKeys('loginArray');
            // console.log(this.setState({ logs: logsInfo }));

            this.setState({
                loading: true
            });

            this._signInAsync();
        }
    }

    _signInAsync = async () => {
        setTimeout(() => {
            this.setState({
                loading: false,
            });
            this.props.navigation.navigate("App");
        }, 2000);
    };

ДОМАШНИЙ ЭКРАН -

  fetchAllItems = async () => {
    try {
        const keys = await AsyncStorage.getAllKeys()
        const items = await AsyncStorage.multiGet(keys)
        this.setState({ userCredentials: items })

        Reactotron.log(this.state.userCredentials);
    } catch (error) {
        console.log(error, "problemo")
    }
}

1 Ответ

0 голосов
/ 28 марта 2019

Я думаю, вы хотите знать, сколько раз пользователь заходил в ваше приложение?Для этого вы можете сохранить счетчик в AsyncStorage.

В ЭКРАНЕ ВХОДА -,

...

    // Count of last logged in
    let count = 0
    try {
      const value = await AsyncStorage.getItem("COUNTER");
      if (value !== null) {
        // We have counter!!
        count = parseInt(value) + 1
      }
    } catch (error) {
      // Error retrieving data, ie. count = 0
    }

    let loginArray = {
      email: email,
      password: password,
      counter: count
    };

    //key of the item to set
    AsyncStorage.setItem("loginArray", JSON.stringify(loginArray));
    AsyncStorage.setItem("COUNTER", JSON.stringify(count));
    console.log(loginArray);

    ...

А в ДОМАШНЕМ ЭКРАНЕ -,

Вы получите общее количество вAsyncStorage.

...

//Here you will get the cont
const items = await AsyncStorage.getItem("loginArray")
this.setState({ userCredentials: items })
...

items содержит «email», «password» и «counter».

...