Sometimes, we want to delete an item from a state array in a React component.
In this article, we’ll look at how to delete an item from a state array in a React component.
Delete an Item from a State Array in a React Component
We can return a new array within the state setter function’s callback to change a React component’s state array.
For instance, we can write:
import React, { useState } from "react";
export default function App() {
const [names, setNames] = useState(["jane", "john", "james"]);
return (
<div className="App">
<button
onClick={() =>
setNames((names) => names.filter((_, i) => i !== names.length - 1))
}
>
delete
</button>
<div>{names.join(", ")}</div>
</div>
);
}
We have the names
state array that we created with useState
.
Then we have a button that has the onClick
prop set to a function that calls setNames
with a callback that returns the names
array without the last element.
We remove the last element from the returned array by calling filter
with a callback that checks whether i
isn’t names.length — 1
.
This will update the names
array with the array returned by filter
.
And below that, we render the names
entries in a string.
Now when we click on the button, we see the last name in the string removed.
Conclusion
We can return a new array within the state setter function’s callback to change a React component’s state array.