TypeError: undefined is not an object (evaluating 'lists.map')

Я пытаюсь сделать тудушку используя React и Firebase. В Firebase у меня есть todos(задачи) и lists(списки в которых должны объединятся некоторые задачи по тематике). Я плохо знаю React и пытаюсь повторить видео CodeDojo, но у меня появляется вот такая ошибка:

TypeError: undefined is not an object (evaluating 'lists.map')

App.jsx

import React, { useState, useEffect } from 'react';
import { Switch, Route } from 'react-router-dom';

import { get } from './api';
import DBContext from './context/db';

import AppDrawer from "./components/AppDrawer";
import AppContent from "./components/AppContent";
import TodoList from "./components/TodoList";

import "./App.scss"

export default function App() {
    const [lists, setLists ] = useState([]);
    const [todos, setTodos ] = useState([]);

    useEffect(() => {
        get('lists').then(setLists);
    }, []);


    return (
        <DBContext.Provider value={{lists, todos, get }}>
            <div className="app">
                <AppDrawer
                    lists={lists}
                />


                <AppContent>
                    <Switch>
                        <Route path="/:listId" component={TodoList} />
                    </Switch>
                </AppContent>
            </div>
        </DBContext.Provider>
    );
}

AppDrawer.js ошибка здесь во втором List

import React from 'react';
import { NavLink } from 'react-router-dom';

import {
    Drawer, DrawerHeader, DrawerContent,Icon,
    List, ListItem, ListItemGraphic, ListItemText, ListDivider,
    ListGroup
} from 'mdc-react';

export default function AppDrawer({ lists }) {

    return (
        <Drawer
            id="app-drawer"
        >
            <DrawerHeader
                title="React Todo"
            />

            <DrawerContent>
                <ListGroup>
                    <List>
                        {[
                            { title: 'Moje konto', icon: 'person', to: '/' },
                            { title: 'Zadania', icon: 'assignment', to: '/tasks' },
                            { title: 'Ważne', icon: 'grade', to: '/important'},
                            { title: 'Nadchodzące', icon: 'alarm', to: '/planned'},
                            { title: 'Wykonane', icon: 'done', to: '/done'},
                        ].map(item =>
                            <ListItem
                                key={item.icon}
                                component={NavLink}
                                to={item.to}
                            >
                                <ListItemGraphic>
                                    <Icon>{item.icon}</Icon>
                                </ListItemGraphic>

                                <ListItemText>
                                    {item.title}
                                </ListItemText>
                            </ListItem>
                        )}
                    </List>

                    <ListDivider element="hr" />

                    <List>
                        {lists.map(item =>
                            <ListItem
                                key={item.key}
                                component={NavLink}
                                to={item.id}
                            >
                                <ListItemGraphic>
                                    <Icon>list</Icon>
                                </ListItemGraphic>

                                <ListItemText>
                                    {item.title}
                                </ListItemText>

                            </ListItem>
                        )}
                    </List>
                </ListGroup>
            </DrawerContent>
        </Drawer>
    );
}

У меня есть еще такая api но не думаю что проблема в нем.

import { db } from "./firebase";

export function get(collection) {
   return db.collection(collection)
        .get()
        .then(snapshot => {
            const items = snapshot.docs.map(doc => ({
                id: doc.id,
                ...doc.data()
            }));

            return items;
        })
        .catch((error) => {
            console.log("Error getting documents: ", error);
        });
}

Ответы (0 шт):