Я пытаюсь реализовать фильтр событий. Я получаю события от родительского компонента в качестве реквизита и передаю его компоненту календаря. События отображаются нормально без фильтрации. Я использовал простую кнопку-переключатель, чтобы отфильтровать эти события на основе свойства объекта. Это исключение возникает при фильтрации событий.
Я читал об исключении в интернете. Он вызывается, когда плагин пытается манипулировать 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;