Home > front end >  can't retrieve key from async storage react native
can't retrieve key from async storage react native

Time:01-05

I am trying to store the user email with async storage using a remember me toggle switch. I am not sure why I am retrieving "null" with my getRememberedUser call? What am I doing wrong? This is React Native , and I also have a redux store (not really using here), but not sure if that is important. Thanks!

  const [userEmail, setuserEmail] = useState("");
  const [rememberMe, setrememberMe] = useState(false);
const rememberUser = async () => {
    try {
      await AsyncStorage.setItem("userEmail", userEmail);
      console.log("stored");
    } catch (error) {
      // Error saving data
    }
  };

  const forgetUser = async () => {
    try {
      await AsyncStorage.removeItem("userEmail");
      console.log("forgotten");
    } catch (error) {
      // Error removing
    }
  };

  const getRememberedUser = async () => {
    try {
      const value = await AsyncStorage.getItem("userEmail");
       console.log(value)
      if (value !== null) {
        // We have username!!
        setuserEmail(value);
      }
    } catch (error) {
      // Error retrieving data
    }
  };
          <Input
          id="email"
          label="E-Mail"
          keyboardType="email-address"
          required
          email
          autoCapitalize="none"
          errorText="Please enter a valid email address."
          onInputChange={inputChangeHandler}
          initialValue={userEmail}
        />
          <Switch
            value={rememberMe}
            onValueChange={(value) => toggleRememberMe(value)}
          />
          <Text>Remember Me</Text>
          <Button
            title="get uersname"
            onPress={() => {
              getRememberedUser();
            }}
          ></Button>

CodePudding user response:

You need to stringify when saving,

await AsyncStorage.setItem("userEmail", JSON.stringify(userEmail));

and parse when retrieving

const value = await AsyncStorage.getItem("userEmail");
const userEmail = JSON.parse(value);
  •  Tags:  
  • Related