Основываясь на документации React-Native-Calendars, вот тестовые коды с жестко обозначенными датами, которые показывают точки в календаре:
const FirstDot = { key: 'First', color: 'blue' };
const SecondDot = { key: 'Second', color: 'blue' };
<Calendar
current={new Date()}
markingType={'multi-dot'}
markedDates={{
'2019-04-15': { dots: [FirstDot, SecondDot] },
'2019-04-14': { dots: [FirstDot] },
}}
/>
В основном я хочу показать одну или две точки в зависимости от данных. Допустим, я получаю данные из SQLite, как я могу динамически заполнить отмеченные даты в React Native?
this.state = { markedDates: {} }; //how to declare the state object?
//other codes.....
db.transaction((tx) => {
let objMarkedDates = this.state.markedDates;
tx.executeSql('SELECT myDates, dataDots FROM myTable',
[], (tx, results) => {
const len = results.rows.length;
if (len > 0) {
for (let i = 0; i < len; ++i) {
if (results.rows.item(i).dataDots === 2) { //show 2 dots
//How to populate the date and the dots to the object???
}
}
}
});
this.setState({ markedDates: objMarkedDates });
});
<Calendar
current={new Date()}
markingType={'multi-dot'}
markedDates={this.state.markedDates}
/>