【发布时间】:2020-09-14 03:50:44
【问题描述】:
我正在使用地图一次渲染多个按钮。我希望当我按下一个按钮时改变它的背景颜色,但是现在当我按下一个按钮时,所有按钮的颜色都会改变。我可以为每个按钮创建状态以查看它是否被选中,但如果我有大量不实用的按钮。有什么解决方法吗?
const [selected, setSelected] = React.useState(false);
const genres = ["Adventure", "Arts", "Leisure", "Nature"];
const onSelect = () => setSelected(!selected);
buttons = () =>
genres.map((items) => (
<TouchableOpacity
key={items}
onPress={() => onSelect()}
style={[
styles.button,
{ backgroundColor: selected ? "#00cc00" : "#f2f2f2" },
]}
>
<Text style={{ fontSize: 18 }}>{items}</Text>
</TouchableOpacity>
));
编辑:我想一次选择多个按钮。如果我点击 Adventure 和 Leisure,它们的按钮颜色都会改变,但其余的保持不变。颜色可以多次按下切换
【问题讨论】:
标签: react-native button react-hooks state render