【问题标题】:can't retrieve key from async storage react native无法从异步存储中检索密钥反应本机
【发布时间】:2022-01-03 21:02:32
【问题描述】:

我正在尝试使用记住我切换开关来存储具有异步存储的用户电子邮件。我不确定为什么要通过 getRememberedUser 调用检索“null”?我究竟做错了什么?这是 React Native ,我也有一个 redux 商店(这里没有真正使用),但不确定这是否重要。谢谢!

  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>

【问题讨论】:

    标签: react-native async-await react-redux react-hooks asyncstorage


    【解决方案1】:

    保存时需要字符串化,

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

    检索时解析

    const value = await AsyncStorage.getItem("userEmail");
    const userEmail = JSON.parse(value);
    

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2021-11-13
    相关资源
    最近更新 更多