Estoy intentando establecer clickFavIconArray de nuevo en una matriz vacía con el gancho.
Básicamente, setClickFavIconArray tiene una lista de ID showFavIcon() verifica esa ID y, si contiene la misma ID, quiero eliminarla de la matriz y actualizar setClickFavIconArray a la nueva matriz.
Sin embargo, parece que se está agregando al clickFavIconArray original sin importar qué. ¿Hay alguna manera de borrar el estado clickFavIconArray de nuevo a una matriz [] vacía?
Un poco de ayuda aquí sería increíble.
const [clickFavIconArray, setClickFavIconArray] = useState([]); function showFavIcon(id){ if (clickFavIconArray.includes(id)) { const newArray = clickFavIconArray.filter(item => !id.includes(item)) setClickFavIconArray(newArray) } setClickFavIconArray([...clickFavIconArray, id]) }Simplemente pase el nuevo valor de la matriz vacía a setClickFavIconArray() :
setClickFavIconArray([])Para asegurarse de que la identificación no se vuelva a agregar inmediatamente a la matriz, agregue una declaración de retorno dentro de la declaración if.
const [clickFavIconArray, setClickFavIconArray] = useState([]); function showFavIcon(id){ if (clickFavIconArray.includes(id)) { const newArray = clickFavIconArray.filter(item => !id.includes(item)); setClickFavIconArray(newArray); return; // make sure that the next line is not executed } setClickFavIconArray([...clickFavIconArray, id]) }Hay dos problemas con el código.
clickFavIconArray.filter(item => id != item) setClickFavIconArray([...clickFavIconArray, id]) Si desea eliminar la identificación, no es necesaria esta línea en su código. Sin embargo, siempre puede establecer clickFavIconArray en un estado de matriz vacío usando este código:
setClickFavIconArray([])