首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dexie useLiveQuery钩子导致错误"TypeError: dexie.liveQuery不是函数“

Dexie useLiveQuery钩子导致错误"TypeError: dexie.liveQuery不是函数“
EN

Stack Overflow用户
提问于 2021-10-22 11:13:18
回答 1查看 149关注 0票数 1

昨天我安装了一个npm的dexie和dexie-react-hooks。package-lock.json显示dexie 3.0.3和dexie-react-hooks 1.0.7

使用模板"cra- template -pwa“创建了一个react应用

使用Dexie网站上的文档进行基本的Dexie DB和useLiveQuery,并在React中创建了这个简单的应用程序组件。

代码语言:javascript
复制
import React from 'react';
import Dexie from 'dexie'
import { useLiveQuery } from 'dexie-react-hooks'

const myDb = new Dexie('myTable');
myDb.version(1).stores(
  {
    items: "id,name,startDate,endDate"
  }
)

function App() {
  const items = useLiveQuery(myDb.items.orderBy('name'), []);

  const itemViews = items.map(item => { return <div>{item.name}</div> })

  return (
    <div className="App">
      <ul>
        {itemViews}
      </ul>
    </div>
  );
}

export default App;

当它在浏览器中运行时,应用程序无法显示,相反,我们会得到以下错误:

代码语言:javascript
复制
TypeError: dexie.liveQuery is not a function
(anonymous function)
src/dexie-react-hooks.ts:14
  11 | // Make it remember previous subscription's default value when
  12 | // resubscribing (á la useTransition())
  13 | let currentValue = lastResult;
> 14 | const observable = liveQuery(querier);
     | ^  15 | return {
  16 |   getCurrentValue: () => currentValue,
  17 |   subscribe: (onNext, onError) => {

是我们做错了什么,还是这是个bug?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-22 14:33:53

您仍然需要安装dexie@next才能使用它(截至2021年10月)。一个支持liveQuery的新的稳定版本的dexie即将问世。

代码语言:javascript
复制
yarn add dexie@next dexie-react-hooks@latest

代码语言:javascript
复制
npm i dexie@next dexie-react-hooks@latest
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69675883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档