Я создаю автономное Progressive Web App с reactjs, и я успешно установил PouchDB, в частности, мне удалось создать форму, которая сохраняет записи в одной из моих таблиц pouchDB. У меня сейчас проблема в том, что я не знаю точно, как go получить все записи из таблицы и упорядочить по дате, а также просто получить записи за определенную дату.
Я могу ' Кажется, я не нашел много документации для конкретной даты, но когда я сохраняю записи, я создаю значения столбца для updatedAt как new Date()
, который правильно вставляется.
В моем коде ниже у меня есть дБ. js файл и компонент, в котором я хотел бы отобразить все заметки, упорядоченные по дате до самой недавней. Как я могу установить функцию в db. js, чтобы просто получить все записи из таблицы заметок, упорядочить по дате по убыванию, а затем показать все записи в моем рендере?
db. js
import PouchDB from 'pouchdb';
export default class DB {
constructor(name) {
this.db = new PouchDB(name);
}
async getAllNotes() {
let allNotes = await this.db.allDocs({ include_docs: true});
let notes = {};
allNotes.rows.forEach(n => notes[n.id] = n.doc);
return notes;
}
async createNote(note) {
note.createdAt = new Date();
note.updatedAt = new Date();
const res = await this.db.post({ ...note });
return res;
}
}
medJournalComponent. js
import React from 'react';
import { Column, Row } from 'simple-flexbox';
import { StyleSheet, css } from 'aphrodite/no-important';
import { BrowserRouter as Router, Switch, Route, Link } from "react-router-dom";
import DB from './db';
class MedJournalComponent extends React.Component {
state = {
open: false,
note: {
title: '',
body: '',
createdAt: undefined,
updatedAt: undefined
}
};
updateValue = (e) => {
const { note } = this.state;
this.setState({
note: { ...note,[e.target.name]: e.target.value}
})
}
handleSave = async (e) => {
e.preventDefault();
const id = this.props.onSave(this.state.note);
}
componentDidMount(){
console.log('doing this here with New.js');
console.log(this.props);
}
render() {
const { note } = this.state;
return (
<Column>
<Row className={css(styles.cardsContainer)} wrap flexGrow={1} horizontal="space-between" breakpoints={{ 580: 'column' }}>
<Row className={css(styles.cardRow)} wrap flexGrow={1} horizontal="space-between" breakpoints={{ 580: 'column' }}>
/** want to display data here**/
</Row>
</Row>
</Column>
);
}
}
export default MedJournalComponent;