Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Вопросы по react js (https://javascript.ru/forum/library-toolkit-framework/75268-voprosy-po-react-js.html)

Георгий777 18.09.2018 01:28

Вопросы по react js
 
Здравствуйте, подскажите, пожалуйста, почему не отображается данный код:

https://jsfiddle.net/kxcu3g6o/7/

Malleys 18.09.2018 05:20

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

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 ✨Оно работает✨


Часовой пояс GMT +3, время: 10:16.