NSNull类型的JSON值'<null>'无法转换为NSString IOS Simulator

问题描述

每次在iOS模拟器中重新加载React Native应用程序时,每次滚动或导航该应用程序时,都会出现以下错误屏幕。

enter image description here

我不确定导致此错误的原因是什么。

我认为图片来源可能有问题,但不认为这是问题所在。

const UserItem = (props: { onSelect: () => void,user: User }) => {

return <AccountContainer onPress={props.onSelect}>
    <Accountimage source={{ uri: props.user.photoUrl }} />
    <Text text={props.user.username} />
</AccountContainer>

}

我还确保我对json对象进行了严格化处理,因为我看到人们在AsyncStorage中也遇到了同样的问题

const save = async <T>(key: string,value: T): Promise<T | null> => {
  try {
    await AsyncStorage.setItem(key,JSON.stringify(value));
    return value;
  } catch (error) {
    return null;
  }

解决方法

我能够通过调用AsyncStorage.setItem(null,"#");

来获得相同的错误

您可以结束setItem调用,以免引发本机错误。

const safeSetStorageItem = (key: string,value: object) => {
  if (!key) {
    logger.warn("Probably a mistake here...raise a warning and investigate");
    return;
  }

  return await AsyncStorage.setItem(key,JSON.stringify(value));
};