基于切换按钮的数组中的 React Native toggle add/remove 元素
React Native toggle add/remove element in an array based off toggling a button
我有一个TouchableOpacity
,既可以按下也可以不按下。
这是我的 useState 变量:
const [isPressMonday, setIsPressMonday] = useState(false);
这是我的切换功能:
setIsPressMonday(!isPressMonday);
setDays(days => [...days, 'Monday'])
};
问题是,当用户取消单击该按钮时,它应该从数组中删除星期一。如果我可以检查 if(!isPressMonday)
并将其从数组中删除,这将很简单,但默认值是 false
所以这几乎总是正确的
您不需要检查 isPressMonday
状态,而是检查 'Monday'
是否存在于 days
状态。如果是,删除else,添加。
//assuming 'days' is your array state name
setIsPressMonday(isPressMonday => !isPressMonday);
const index = days.indexOf('Monday');
if (index !== -1) {
let tempDays = days
tempDays.splice(index, 1);
setDays(tempDays)
}
else {
setDays(days => [...days, 'Monday'])
}
我有一个TouchableOpacity
,既可以按下也可以不按下。
这是我的 useState 变量:
const [isPressMonday, setIsPressMonday] = useState(false);
这是我的切换功能:
setIsPressMonday(!isPressMonday);
setDays(days => [...days, 'Monday'])
};
问题是,当用户取消单击该按钮时,它应该从数组中删除星期一。如果我可以检查 if(!isPressMonday)
并将其从数组中删除,这将很简单,但默认值是 false
所以这几乎总是正确的
您不需要检查 isPressMonday
状态,而是检查 'Monday'
是否存在于 days
状态。如果是,删除else,添加。
//assuming 'days' is your array state name
setIsPressMonday(isPressMonday => !isPressMonday);
const index = days.indexOf('Monday');
if (index !== -1) {
let tempDays = days
tempDays.splice(index, 1);
setDays(tempDays)
}
else {
setDays(days => [...days, 'Monday'])
}