EN
React - how to add / remove items from array in state (class component)
0
points
In this article, we would like to show you how to add and remove items from an array in the state in React.
Below example presents two functions:
handleAddItem
that uses spread operator (...
) to create a copy of array in the state, adds an item to it and then withsetState()
method updates the state value.handleRemoveItem
that usesfilter()
method to remove item with the last index from the array.
Runnable example:
// ONLINE-RUNNER:browser;
// Note: Uncomment import lines during working with JSX Compiler.
// import React from 'react';
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
items: []
};
}
handleAddItem = () => {
const items = this.state.items;
this.setState({ items: [...items, 'item-' + items.length] });
};
handleRemoveItem = () => {
const items = this.state.items;
if (items.length > 0) {
const lastIndex = items.length - 1;
this.setState({ items: items.filter((item, index) => index !== lastIndex) });
}
};
render() {
const items = this.state.items;
return (
<div className="wrapper">
<div>
List: {items.length} total items.
</div>
<button onClick={this.handleAddItem}> Add</button>
<button onClick={this.handleRemoveItem}>Remove</button>
<ul>
{items.map((item, index) => <li key={index}>{item}</li>)}
</ul>
</div>
)
}
}
const root = document.querySelector('#root');
ReactDOM.render(<App />, root );
Note:
Go to this article to see functional component example.