[英]How to apply different styles to specific button in react native
I have an image on which I'm applying different filter overlays.我有一张图像,我在上面应用了不同的过滤器覆盖。 I want to apply specific styling based on the button pressed by the user.
我想根据用户按下的按钮应用特定的样式。 How can I achieve this?
我怎样才能做到这一点?
Right now I'm using ternary condition but its just applying for one styling现在我正在使用三元条件,但它只是申请一种样式
<Image
source={{
uri: source,
}}
style={styles.filterImage}
resizeMode="contain"
/>
<View
style={
filter1 ? styles.filterOverlay1 : styles.defaultFilterOverlay
}
I have made multiple states for different filter overlays我为不同的过滤器覆盖做了多个状态
const [filter1, setFilter1] = useState(false);
const [filter2, setFilter2] = useState(false);
const [filter3, setFilter3] = useState(false);
const [filter4, setFilter4] = useState(false);
const [filter5, setFilter5] = useState(false);
const [filter6, setFilter6] = useState(false);
const [filter7, setFilter7] = useState(false);
When the user is pressing on a button its setting the state to true当用户按下按钮时,将 state 设置为true
<TouchableOpacity
style={styles.filterTags}
onPress={() => setFilter1(true)}
>
<Text style={{ color: "#fff", fontWeight: "bold" }}>
Filter 1
</Text>
</TouchableOpacity>
<TouchableOpacity
style={styles.filterTags}
onPress={() => setFilter2(true)}
>
<Text style={{ color: "#fff", fontWeight: "bold" }}>
Filter 2
</Text>
</TouchableOpacity>
<TouchableOpacity
style={styles.filterTags}
onPress={() => setFilter3(true)}
>
<Text style={{ color: "#fff", fontWeight: "bold" }}>
Filter 3
</Text>
</TouchableOpacity>
you can use a ternary condition like this你可以使用这样的三元条件
style={
filter1 ? styles.filterOverlay1 : filter2 ? styles.filterOverlay2 : filter3 ? styles.filterOverlay3 : filter4 ? styles.filterOverlay4 :styles.defaultFilterOverlay
}
or you can use filters like this或者你可以使用这样的过滤器
const [selectedFilter, setSelectedFilter] = useState(styles.defaultFilterOverlay);
on TouchableOpacity press在 TouchableOpacity 按下
<TouchableOpacity
style={styles.filterTags}
onPress={() => setSelectedFilter(styles.filterOverlay1)}
>
and set the selected filter并设置选定的过滤器
style={ selectedFilter }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.