Показать сообщение отдельно
  #2 (permalink)  
Старый 18.09.2018, 05:20
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Потому что у вас ошибки...

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 ✨Оно работает✨
Ответить с цитированием