Показать сообщение отдельно
  #5 (permalink)  
Старый 13.08.2021, 14:25
Новичок на форуме
Отправить личное сообщение для Fragman Посмотреть профиль Найти все сообщения от Fragman
 
Регистрация: 10.08.2021
Сообщений: 7

Выглядит это следующим образом:
import React from 'react';
import Item from '../cardEleme/Item';

class CardList extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            cards: [
                { id: '1', header: 'Первая карточка', checked: false },
                { id: '2', header: 'Вторая карточка', checked: false },
                { id: '3', header: 'Третья карточка', checked: false },
                { id: '4', header: 'Четвертая карточка', checked: false },
                { id: '5', header: 'Пятая карточка', checked: false },
            ],
        };
    }

    showChecked = (props) => {
        let num = Number(props);
        num--;
        let cards = [...this.state.cards];
        if (this.state.cards[num].checked) {
            cards[num] = { ...cards[num], checked: false };
        } else {
            cards[num] = { ...cards[num], checked: true };
        }
        this.setState({ cards });
    };

    removeCards = () => {
        let cards = this.state.cards.filter((card) => !card.checked);
        this.setState({ cards });
    };

    render() {
        return (
            <div>
                <div>
                    {this.state.cards.map((card) => (
                        <Item {...card} readOnly={this.props.readOnly} key={card.id} showCheck={this.showCheck} />
                    ))}
                </div>

                <button style={{ marginLeft: '25px', marginTop: '15px' }} onClick={this.removeCards}>
                    Удалить
                </button>
            </div>
        );
    }
}
export default CardList;


А ошибка:"Cannot read property 'checked' of undefined". Мне кажется, что это всё как-раз таки из-за неправильной индексации
Ответить с цитированием