首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React本机如何在Flatlist中用相同的id显示不同的API

React本机如何在Flatlist中用相同的id显示不同的API
EN

Stack Overflow用户
提问于 2022-01-21 11:36:51
回答 1查看 125关注 0票数 0

我有两个不同的API,我想在一个Flatlist中显示两个API,这是工作的(看图片)。我使用id显示它(如果API有相同的id将显示)。我的问题是如何删除/隐藏/不显示空值平面列表(查看图片)?我正在使用来自https://jsonplaceholder.typicode.com的API

想象一下我的应用程序

代码语言:javascript
复制
  const {user, post} = useSelector(state => state.reducer);
  const dispatch = useDispatch();

  const getData = [...user, ...post];

  useEffect(() => {
    dispatch(getProfile());
    dispatch(getPost());
  }, []);


  const tailwind = useTailwind();

const renderPost = ({item}) => {
    const renUsr = user.filter(renUsr => renUsr.id === item.userId);
    return (
      renUsr.id !== item.userId ? (
        <View style={tailwind('pb-4')}>
          <View style={tailwind('px-4 py-4 bg-gray-200 mx-6 rounded-[20px]')}>
            <View style={tailwind('flex flex-row')}>
              <Image style={tailwind('rounded bg-black w-8 h-8')} />
              {renUsr.map(posting => (
                <Text
                  key={posting.id}
                  style={tailwind('pl-2 font-semibold py-2')}>
                  {posting.name}
                </Text>
              ))}
            </View>
            <View style={tailwind('mt-2')}>
              <TouchableHighlight
                style={styles.touchHighlight}
                onPress={navigation}>
                <View style={tailwind('bg-gray-200 p-1')}>
                  <Text key={item.id}>{item.body}</Text>
                </View>
              </TouchableHighlight>
            </View>
          </View>
        </View>
      ) : (
        null
      ) 
    );
  };

  return (
      <FlatList
        data={getData}
        renderItem={renderPost}
        keyExtractor={item => item.id}
      />
  );
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-21 14:11:55

代码语言:javascript
复制
user.filter(renUsr => renUsr.id === item.userId);

不要在这里使用过滤器,只需过滤传递给平面列表的列表,这样它就只循环一次,而不是对每一项进行过滤。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70800614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档