Потому что у вас ошибки...
0. У вас используется JSX, если вы всё-таки хотите, что бы это был JavaScript, то можете перевести при помощи сервиса
babeljs.io.
Далее нумерация идёт, как указано тут
jsfiddle.net/kxcu3g6o.
1. У вас в JSX на 60-ой строке написано `
this.removeItem(item.id)`, но вы наверное не хотите удалять сразу создаваемое, так что замените на `
this.removeItem.bind(this, item.id)`
2. На 28-ой строке `
this.setState(items);`, но вы наверное не хотите устанавливать в состояние ключи массива, так что замените на `this.setState({ items });`
3. На 18-ой строке `
let newObj = { id:5, text: newItemVal, done: false}`, но вы наверное не хотите, чтобы все дела имели одинаковый id. Например, в состоянии можно хранить индекс, который увеличивается на один после каждого созданного дела. Так что замените на `
let newObj = { id: this.state.i, text: newItemVal, done: false}`. Также добавьте её изменение после добавления нового дела.
4. Строка 38. Сколько не свети красным, оно не удалится... Пример удаления
this.setState({
items: this.state.items.filter(item => item.id !== i)
});
5. Строка 27. Вожможно вы не хотите изменять массив, описывающии предыдущее состояние!
Конечный результат c изменениями:
jsfiddle.net/kxcu3g6o ✨Оно работает✨