Есть функция, которая должна обновлять массив пользовательских данных удаляя из него элемент. По onClik в функциональный элемент передаётся ссылка на метод и на индекс элемента в массиве. Всё до этого момента работает корректно (проверял console.log()
). Есть странная особенность метода splice()
. Вроде как тут прочёл описание (
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/splice ), но всё работает не так. Я не совсем понимаю почему.
При вводе:
1;
2;
3;
2;
И нажатии на 3 консолит это:
deleteNote (index) {
let arr = this.state.lies;
console.log(arr); //
arr = arr.splice(index, 1);
console.log(arr); //
this.setState({lies : arr});
}
render () {
let lies = this.state.lies.map( (item, index) => {
return item = <NewLi
text = {item.text}
key = {item.id}
id = {index}
deleteNote = {this.deleteNote.bind(this)}
/>;
})
function NewLi (props) {
return(
<div>
<li>{props.text}</li>
<button onClick = {() => props.deleteNote(props.id)}> X </button>
</div>
);
}
module.exports = NewLi;
Замени arr = arr.splice(index, 1) на arr.splice(index, 1) и будет счастье.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Запускаю любой код, но консоль ничего не отображаетТолько модальные окна работают
Друзья есть база данных из которой мне надо выводить на сайте картинкуТо есть при клике на кнопку должна появляться картинка из базы данных
Подключил график на страницу, все работаетНо когда хочу добавить свои данные, то происходит ошибка Исходный код
Суть в том, что userAgent браузера Edge выдаёт следующую строку: "Mozilla/50 (Windows NT 10