Баг функции удаления элемента

155
22 августа 2017, 15:11

Есть функция, которая должна обновлять массив пользовательских данных удаляя из него элемент. По 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;
Answer 1

Замени arr = arr.splice(index, 1) на arr.splice(index, 1) и будет счастье.

READ ALSO
Отладка не работает в хроме [требует правки]

Отладка не работает в хроме [требует правки]

Запускаю любой код, но консоль ничего не отображаетТолько модальные окна работают

179
как загрузить картинку из базы данных на админ-сайт

как загрузить картинку из базы данных на админ-сайт

Друзья есть база данных из которой мне надо выводить на сайте картинкуТо есть при клике на кнопку должна появляться картинка из базы данных

224
PHP. Google Charts. Error: Unknown header type: 3

PHP. Google Charts. Error: Unknown header type: 3

Подключил график на страницу, все работаетНо когда хочу добавить свои данные, то происходит ошибка Исходный код

300
Определение версии Edge

Определение версии Edge

Суть в том, что userAgent браузера Edge выдаёт следующую строку: "Mozilla/50 (Windows NT 10

386