【发布时间】:2020-08-04 08:30:11
【问题描述】:
我有一个如下所示的组件:
const criteriaList = [
'Nur Frauen',
'Freunde Zweiten Grades',
];
export const FilterCriteriaList: React.FunctionComponent = () => {
const [state, setState] = useState(false);
useEffect(() => {
console.log('state is,', state);
});
const myFunction = () => {
console.log('checking state', state);
if (state == false) {
setState(true);
} else {
setState(false);
}
};
return (
<View style={styles.container}>
<View style={styles.horizontalLine} />
{criteriaList.map((item: string, index: number) => (
<View key={index}>
<View style={styles.criteriaRow}>
<TouchableOpacity
onPress={() => {
myFunction();
}}>
<Icon
name="circle-thin"
color="#31C283"
size={moderateScale(20)}
/>
</TouchableOpacity>
<Text style={styles.text}>{item}</Text>
</View>
<View style={styles.horizontalLine} />
</View>
))}
</View>
);
};
目前,我使用的是圆形细图标。我想更改它,以便每次单击图标时,它都会更改为 dot-circle-o 图标。像单选按钮。但是,我不太确定该怎么做。
我曾想过使用三元运算符,但由于我正在映射我的字段 Idk 如何集体设置状态。也许使用索引?我不想为每个字段创建单独的状态。这是一个类似的小吃演示:
https://snack.expo.io/toTSYc2fD
我希望能够选择多个/取消选择选项。我不想在所有字段上同时应用相同的规则。
注意:onPress 函数也可以直接在 Icon 上使用,而不是 TouchableOpacity(虽然不是首选)
【问题讨论】:
标签: javascript reactjs typescript react-native react-hooks