Использование реагирование на собственные календари Я пытаюсь использовать onVisibleMonthsChange
для обновления событий для каждого месяца, мое состояние обновляется с правильными данными, но календарь кажется пустым, какие-либо идеи?
CalendarList не выполняет рендеринг с использованием loadItems(dates)
Заполните CalendarList
событиями между dates
param. Я создаю свои данные в редукторе событий:
const newItems = {};
for (let i = 0; i < 180; i++) {
const time = moment().utc() + i * 24 * 60 * 60 * 1000;
const strTime = timeToString(time);
if (events[strTime]) {
newItems[strTime] = { ...events[strTime] };
} else {
newItems[strTime] = {};
}
}
return {
...newItems
};
Я называю это с componentDidMount
, в моем месячном компоненте:
const { componentDidMount() {
const {
credentials: { year, group, id },
fetchEvents
} = this.props;
const Id = id || group;
fetchEvents(Id);
}
Затем я отмечаю соответствующие даты как выбранные, используя параметр loadItems
:
loadItems(dates) {
const { events } = this.props;
const moment = extendMoment(Moment);
const lastItemIndex = dates.length;
const startDate = moment(dates[0].timestamp).startOf("month"),
endDate = moment(dates[lastItemIndex - 1]).endOf("month");
const dateRange = moment().range(startDate, endDate);
newEvents = Object.keys(events).reduce((output, dateString) => {
if (dateRange.contains(moment(dateString).toDate())) {
output[dateString] = events[dateString];
if (!helpers.emptyObject(output[dateString])) {
output[dateString].selected = true;
}
}
return output;
}, {});
this.setState({
markedDates: { ...newEvents, ...this.state.markedDates }
});
}
Ссылка на репо:
https://bitbucket.org/matthisco/ejected-calendar/src/7953011ab44b08f60307d051655d8dcb3035a889/?at=feature%2FChunk_event_data
наблюдаемое поведение
Месяц не отображает:
Окружающая среда
- react-native-calendars@1.19.4
- react-native@0.55.4