0

So basically I'm currently doing my class lesson and right now I'm stuck with this problem. {Property 'set' does not exist on type 'typeof Storage'.ts(2339)} and {Property 'get' does not exist on type 'typeof Storage'.ts(2339)}

import { Directory, Filesystem } from "@capacitor/filesystem";
import React, {useCallback, useEffect, useState} from "react";
import { Storage } from '@ionic/storage';

import MemoriesContext, { Memory } from "./memories-context";

const MemoriesContextProvider: React.FC = props => {
    const [memories, setMemories] = useState<Memory[]>([]);
    const addMemory = (path: string, base64Data: string, title: string, type: 'good'|'bad') => {
        const newMemory: Memory = {
            id: Math.random().toString(),
            title,
            type,
            imagePath: path,
            base64Url: base64Data
        }
        setMemories(curMemories => {
            return [...curMemories, newMemory];
        });
    };

    useEffect(() => {
        const storableMemories = memories.map(memory => {
            return{
                id: memory.id,
                title: memory.title,
                imagePath: memory.imagePath,
                type: memory.type
            }
        });
        Storage.set({key: 'memories', value: JSON.stringify(storableMemories)});
    }, [memories]);

    const initContext = useCallback(async () => {
        const memoriesData = await Storage.get({key: 'memories'});
        const storedMemories = memoriesData.value ? JSON.parse(memoriesData.value) : [];
        const loadedMemories: Memory[] = [];
        for(const storedMemory of storedMemories) {
            const file = await Filesystem.readFile({
                path: storedMemory.imagePath,
                directory: Directory.Data
            })
            loadedMemories.push({
                id: storedMemory.id,
                title: storedMemory.title,
                type: storedMemory.type,
                imagePath: storedMemory.imagePath,
                base64Url: 'data:image/jpeg;base64,' + file.data
            });
        }
        setMemories(loadedMemories);
    }, []);

    return (
        <MemoriesContext.Provider value={{memories, addMemory}}>
            {props.children}
        </MemoriesContext.Provider>
    );
}

export default MemoriesContextProvider;

My current problem is that Storage.set and Storage.get got the {Property 'set' does not exist on type 'typeof Storage'.ts(2339)}.

I don't know what is the problem here

Dragonarc
  • 73
  • 2
  • 10

0 Answers0