我有一个带有不同卡片的屏幕(有文章信息)我试图在按下方便的类别时按类别过滤文章我希望选择该类别并显示属于该类别的文章,另一方面当没有选择任何类别时,将所有类别中的所有文章都交给显示(如果您看下面的图片,这将更有意义)用于显示不同类别图片的代码:import TouchableScale from "react-native-touchable-scale";import { category } from "../api/data";import colors from "../config/colors";function HotTopics({ navigation }) { //const { width, height } = Dimensions.get("window"); return ( <View style={styles.Container}> <View> <Text style={styles.CategoryText}>Hot Topics</Text> </View> <FlatList horizontal showsHorizontalScrollIndicator={false} style={{ paddingHorizontal: 15 }} data={category} keyExtractor={(item) => item.id} renderItem={({ item }) => { return ( <View> <View> <TouchableScale activeScale={0.9} tension={50} friction={7} useNativeDriver onPress={() => navigation.navigate({ id: item.id })} > {/* to show the horizental news list*/} <Image source={{ uri: item.image }} style={{ width: 100, height: 120, borderRadius: 16, marginRight: 10, }} /> {/* to show the news titles inside the pictures*/} <SharedElement id={`item.${item.id}.text`} style={{ width: 100, position: "absolute", bottom: 95, //left: 10, paddingHorizontal: 5, justifyContent: "center", alignItems: "center", }}
1 回答
哔哔one
TA贡献1854条经验 获得超8个赞
处理这个问题的最简单方法是有一个回调函数来设置 HotTopics 组件的状态,如下所示
const [category, setCategory] = useState();
在渲染中
<HotTopics onCategorySelect={setCategory} /> <ArticleListVer post={filterResultsByCategory(category)} />
对于热门话题的点击,你可以做
onPress={() => this.props.onCategorySelect(item.category) }
通过这样做,您将使用新类别重新呈现父级。对于重置,您需要一个按钮将状态重置为空,以便显示所有项目。
添加回答
举报
0/150
提交
取消