基于切换按钮的数组中的 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'])
}