Как удалить значение каждого ключа в Async Storage в React Native во время выхода из системы - PullRequest
0 голосов
/ 24 июня 2019

Я использую async хранилище в React native для хранения ответа, получаемого с сервера.Теперь я хочу удалить значение каждого ключа во время logout.but метод removeItem не может сделать это, вот мой код ...

logout = ()=>{

   const {id , storedValue ,storedType,profileImg,type } = this.state;
   console.log("here" , id);
    axios.post('api/v1/user/do_logout', {
      user_id: id,

        })
        .then( async (response) => {
          if(response.data.type == "success"){
             alert("Logout Successfully");
             await AsyncStorage.removeItem(storedValue);
             await AsyncStorage.removeItem(storedType);
             await AsyncStorage.removeItem(profileImg);
             await AsyncStorage.removeItem(type);
             await AsyncStorage.removeItem(id);

            console.log(storedValue , storedType , profileImg , type ,id );
            this.props.navigation.navigate("LoginScreen");

          }else if(response.data.type == "error"){
            // console.log(self.id);
            alert("Incorrect Detail");
          }
      })
        .catch((error) => {
          console.log(error);
        });
  }

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

1 Ответ

3 голосов
/ 24 июня 2019

Я пытаюсь удалить значение каждого ключа, но он не работает.

Вы можете подумать, что поскольку вы вызываете console.log(storedValue , storedType , profileImg , type ,id );, это не очистка, но, вероятно, очистка, вы показываете состояние компонента, а не значение в AsyncStorage.

Если это не так, пожалуйста, объясните лучше, что вы подразумеваете под but it is not working.

Один из способов удалить все сразу - это AsyncStorage.multiRemove.

await AsyncStorage.multiRemove([storedValue, storedType, profileImg, type, id])

Вы должны заметить, что storedValue, storedType, profileImg, type, id должны быть key, которые вы использовали в AsyncStorage.setItem(key, value), а не value.

Вы также можете удалить все сохраненные ключи из вашего приложения с помощью getAllKeys и multiRemove.

AsyncStorage.getAllKeys()
    .then(keys => AsyncStorage.multiRemove(keys))
    .then(() => alert('All Keys removed'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...