Uncaught DOMException: не удалось выполнить «removeChild» на «узле» при фильтрации событий - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь реализовать фильтр событий. Я получаю события от родительского компонента в качестве реквизита и передаю его компоненту календаря. События отображаются нормально без фильтрации. Я использовал простую кнопку-переключатель, чтобы отфильтровать эти события на основе свойства объекта. Это исключение возникает при фильтрации событий.

Я читал об исключении в интернете. Он вызывается, когда плагин пытается манипулировать DOM вне реакции.

imports ...
const localizer = BigCalendar.momentLocalizer(moment) // or globalizeLocalizer

class ProgramCalendar extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            allDayFilter: false,
        }
    }

    toggleAllDay = () => {
        this.setState(state => ({
            allDayFilter: !state.allDayFilter,
        }),this.filteredEvents)
    }

    filteredEvents = () => {
        const { allDayFilter, } = this.state
        const { fragmentedEvents: events } = this.props
        console.log(events)
        if (allDayFilter) {
            return events.filter(event => (event.content_type === 'basereward'))
        }
        return events
    }

    render() {
        const events  = this.filteredEvents()
        return (
            <div className="calendar-container" >
                <input type="checkbox" onChange={this.toggleAllDay}/>
                <div style={{height: '100vh'}}>
                    <BigCalendar
                        localizer={localizer}
                        defaultDate={new Date()}
                        events={events}
                    />
                </div>
            </div>
        );
    }
}

export default ProgramCalendar;
...