I'm trying to remove an item from an array.
Let's say I have an array of 5 items: [0,1,2,3,4] If I delete item number five [4], it works fine. But if I delete item [1], object [2,3,4] is also deleted. So what am I doing wrong?
This function added a new draggable item
const addshootOutside = index => {
setShootOutside([
...shootOutside,
<Outside key={index} pageX={positionX} pageY={positionY}/>,
]);
};
This function delete a draggable item
const deleteHandler = index => {
const arr = shootOutside.filter((el, i) => index !== i)
setShootOutside(arr);
};
Here I call the "deleteHandler"
const twoOptionAlertHandler = () => {
//function to make two option alert
Alert.alert(
//title
'Ta bort',
//body
'Är du säker på att du vill ta bort skott?',
[
{ text: 'OK', onPress: (index) => deleteHandler(index) },
{
text: 'Avbryt',
onPress: () => console.log('No Pressed'),
style: 'cancel',
},
],
{ cancelable: false }
//clicking out side of alert will not cancel
);
};
Here is the my draggable item.
console.log(shootOutside);
const Outside = () => {
return (
<Draggable
x={200}
y={200}
onShortPressRelease={twoOptionAlertHandler}
renderSize={20}
renderColor="red"
renderText="x"
isCircle
onDragRelease={e => {
setPositionY(e.nativeEvent.pageY);
setPositionX(e.nativeEvent.pageX);
}}
/>
);
};