使用不同类型的组件反应本机listview
我正在开发一个react本机应用程序。在其主页上,我需要显示一些帖子,如视频、音频、图像、博客、文章等。我不知道如何实现这一点。如何使用不同类型的组件、音频、视频和图像的混合制作列表或网格视图。从后端,我们将添加一个图像、视频、音频或博客,并在列表中创建一个新帖子。我还想将新帖子添加到开头,而不是结尾。任何帮助都将不胜感激 您可以使用使用不同类型的组件反应本机listview,listview,gridview,react-native,Listview,Gridview,React Native,我正在开发一个react本机应用程序。在其主页上,我需要显示一些帖子,如视频、音频、图像、博客、文章等。我不知道如何实现这一点。如何使用不同类型的组件、音频、视频和图像的混合制作列表或网格视图。从后端,我们将添加一个图像、视频、音频或博客,并在列表中创建一个新帖子。我还想将新帖子添加到开头,而不是结尾。任何帮助都将不胜感激 您可以使用平面列表来执行此操作。它非常容易使用,性能也很好,React Native推荐它(请看)。 这是一个使用FlatList的简单示例,您可以在单独的组件或函数中处理列
平面列表来执行此操作。它非常容易使用,性能也很好,React Native推荐它(请看)。
这是一个使用FlatList
的简单示例,您可以在单独的组件或函数中处理列表项,并将其传递到FlatList
的renderItem
属性中。您可以在以下位置查看FlatList
的完整文档:
\u键提取器=(项,索引)=>item.id;
_renderItem=({item})=>(
如果(item.type==='video'){
}else if(item.type==='image'){
}否则如果。。。
...
);
render(){
返回(
);
}
谢谢您的回复。对不起,我对平面列表感到困惑,无法正确理解。什么是传递给数据的dataList?我从哪里传递项目的类型?我假设dataList
是您的帖子列表,我假设您的帖子对象具有一个类型属性,您可以使用该属性检测帖子的类型,并为每个帖子选择适当的UI组件(例如:
或
).\u renderItem
是为您的帖子返回适当UI组件的函数。您应该为每种类型的帖子定义自己的UI组件。我还没有任何api,所以我要做的是为不同的帖子添加按钮,然后单击按钮,新帖子将添加到平面列表中,是否可以创建一个空的平面列表,然后单击一个按钮创建帖子?您可以将数据数组存储在您的状态中,然后按该按钮将新帖子添加到数组中,并使用setState
将新数组应用到状态,这样会导致渲染组件,新帖子将添加到列表中。
_keyExtractor = (item, index) => item.id;
_renderItem = ({item}) => (
if (item.type === 'video') {
<MyVideo item={item}/>
} else if (item.type === 'image') {
<MyImage item={item}/>
} else if ...
...
);
render() {
return (
<FlatList
data={dataList}
keyExtractor={this._keyExtractor}
renderItem={this._renderItem}
/>
);
}