RN错误:必须在<Text>组件中呈现文本字符串

时间:2020-07-05 16:37:29

标签: javascript reactjs typescript react-native render

我知道之前曾有人问过这个问题,但是没有一个答案对我有帮助。我在包含以下内容的文件中收到此错误:

          <View style={styles.listHolder}>
            {data && (
              <MyList data={userData} onSendRequest={onSendRequest}></MyList>
            )}
          </View>

此处data由grapqhl查询(Apollo)返回。错误出现在MyList组件中的某个地方,如下所示:

type UserProps = {
  data: UsersLazyQueryHookResult;
  //originatorId: number;
  onSendRequest: (id: number) => void;
};
export const MyList: React.FunctionComponent<UserProps> = ({
  data,
  //originatorId,
  onSendRequest,
}) => {
  return (
    <View>
      {data && (
        <FlatList
          data={data.users.nodes}
          horizontal={false}
          scrollEnabled
          renderItem={({ item }) => (
            <User
              user={item}
              onSendRequest={onSendRequest}
            />
          )}
          keyExtractor={(item) => item.id.toString()}
          ListEmptyComponent={NoFriendsContainer}
        />
      )}
    </View>
  );
};

在此组件中,错误位于返回的第一行上,该行显示 <View>

我错过了什么?请注意,当我使用Prettier进行格式化时,MyList前面的括号会自动出现。

1 个答案:

答案 0 :(得分:1)

在您发布的代码中找不到任何错误,但是请尝试此解决方案。

type UserProps = {
  data: UsersLazyQueryHookResult;
  //originatorId: number;
  onSendRequest: (id: number) => void;
};
export const MyList: React.FunctionComponent<UserProps> = ({
  data,
  //originatorId,
  onSendRequest,
}) => {
  return (
    <View>
      {data?(
        <FlatList
          data={data?.users?.nodes}
          horizontal={false}
          scrollEnabled
          renderItem={({ item }) => (
            <User
              user={item}
              onSendRequest={onSendRequest}
            />
          )}
          keyExtractor={(item) => item?.id?.toString()}
          ListEmptyComponent={NoFriendsContainer}
        />
      ):null}
    </View>
  );
};```