javascript - React-native 复选框逻辑
问题描述
我有一个复选框,如果选中了复选框,我想将复选框名称添加到数组中,当它未选中时,我想将其从数组中删除并取消选择它。我尝试了一些东西,但它有问题。请有人可以帮助我,如果有更好的方法请提出建议。
这是我的代码
import React, { useState } from "react";
import { CheckBox, Button } from "react-native-elements";
const Occasion = props => {
const [tags, setTags] = useState([]);
//Checks
const [today, setToday] = useState(false);
const [tommorow, setTommorow] = useState(false);
const [someDay, setSome] = useState(false);
const CustomCheck = (props) => {
const { checked, title, onSelect } = props;
return (
<CheckBox
checked={checked}
onPress={onSelect}
title={title}
/>
);
};
const handleChecked = (item) => {
const existingIndex = tags.findIndex(
tag => tag === item
);
switch(item){
case 'Now':
setToday(!today)
if (existingIndex >= 0) {
const filteredItems = tags.filter(tag => tag !== item)
return setTags(filteredItems)
}else{
setTags(tags.concat(item))
}
case 'Tommorow':
setTommorow(!tommorow)
if (existingIndex >= 0) {
const filteredItems = tags.filter(tag => tag !== item)
return setTags(filteredItems)
}else{
setTags(tags.concat(item))
}
case 'SomeDay':
setSome(!someDay)
if (existingIndex >= 0) {
const filteredItems = tags.filter(tag => tag !== item)
return setTags(filteredItems)
}else{
setTags(tags.concat(item))
}
default:
return null
}
}
console.log('tags is', tags)
return (
<View style={styles.container}>
<CustomCheck title="Now" checked={today} onSelect={() => {handleChecked("Now") }} />
<CustomCheck title="Tommorow" checked={tommorow} onSelect={() => { handleChecked("Tommorow") }} />
<CustomCheck title="SomeDay" checked={someDay} onSelect={() => { handleChecked("SomeDay") }} />
</View>
);
};
export default Occasion;
解决方案
推荐阅读
- javascript - localStorage 中的返回值作为 js 中的 Int?
- vb.net - 为什么访问密钥 E&xit 在我的 VB 程序中不起作用
- python - Django 教程常量 404 错误 urlpattern 识别
- reactjs - WSL 2 无法连接到 MongoDB
- swift - Placeholder not showing after textfield is cleared SwiftUI
- c - SegFault 调用 main
- django - 部分使用 Vue 和 nginx
- localhost - 如何从本地主机中的浏览器访问 vagrant?
- android-studio - 列表
- >> 解析多边形对象
- python - TypeError:行索引必须是整数,而不是str在python插入查询中