Внимательно читаем, что возвращает метод
Array.prototype.splice.
removeItem(index) {
const newItems = [...this.state.items];
newItems.splice(index, 1);
this.setState({ items: newItems });
}
Правильней будет удалять элемент не по индексу, а по id:
removeItem(id) {
this.setState({
items: this.state.items.filter(item => item.id !== id),
});
}
Для этого передавайте id в хандлер:
<button onClick={() => this.removeItem(item.id)} class="nhc-btn">
Еще вы не передаете свойство key:
<div key={item.id} class="note-container">
Lists and keys
И такое форматирование кода никуда не годится. Почитайте гайдлайны от Airbnb:
Airbnb JavaScript Style GuideAirbnb React/JSX Style Guide