javascript React“参考错误:indexedDB未定义”,但它以某种方式工作

v1l68za4  于 2023-05-16  发布在  Java
关注(0)|答案(1)|浏览(88)

我通过yarn安装了idb-keyval
我使用

import { set } from 'idb-keyval';

并通过使用设置变量

set('hello', 'world');

如图所示,它工作。可以这么说。该条目进入indexedDB,但它告诉我indexedDB没有定义。
是的,我已经重新启动了dev服务器。

juud5qan

juud5qan1#

我建议你在useEffect中编码set。对我的案子有用的人我在下面添加了测试代码。

import { set, get } from 'idb-keyval';
    import { useEffect, useState } from 'react';

    export default function Main() {

        const [member, setMember] = useState([]);
        const [member2, setMember2] = useState([]);

        useEffect(() => {

            set('member', {
                "spec": [
                    { name: 'bar', age: 20 },
                    { name: 'dall', age: 32 },
                    { name: 'hong', age: 47 },
                ],
                "spec2": [
                    { name: 'bar2', age: 20 },
                    { name: 'dall2', age: 32 },
                    { name: 'hong2', age: 47 },
                ],
            }).then(() => {
                get('member').then(user => { 
                    setMember(user.spec) 
                    setMember2(user.spec2) 
                });

            });
        }, []);

        return (
            <div>
                <h1>IdbTest</h1>
                {member.map((item, index) => {
                    return <div key={index}>
                        <p>{item.name}</p>
                        <p>{item.age}</p>
                    </div>
                })}
                {member2.map((item, index) => {
                    return <div key={index}>
                        <p>{item.name}</p>
                        <p>{item.age}</p>
                    </div>
                })}
            </div>
        )
    }

相关问题