Tengo un TouchableOpacity que se puede presionar y no presionar.
Aquí está mi variable useState:
const [isPressMonday, setIsPressMonday] = useState(false);
y aquí está mi función de alternancia:
setIsPressMonday(!isPressMonday); setDays(days => [...days, 'Monday']) }; La cuestión es que, cuando un usuario hace clic en el botón, debería eliminar el lunes de la matriz. Esto sería simple si pudiera verificar if(!isPressMonday) y eliminarlo de la matriz, pero el valor predeterminado es false , por lo que casi siempre es cierto
No necesita verificar con el estado isPressMonday , en su lugar, verifique si 'Monday' está presente en el estado de days . En caso afirmativo, elimine más, agregue.
//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']) }