reactjs, получение записей из pouchDB по дате или по убыванию даты - PullRequest
0 голосов
/ 27 марта 2020

Я создаю автономное 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;
...