我正在尝试学习React的一些未发布的“不稳定”特性。特别是,我想使用“useEventEvent”钩子。
问题是我不能以任何方式导入包的这一部分。
当我尝试以这种方式从React官方包导入一些东西时:
import * as React from "react"
字符串
模块自动指向此目录(@types/react npm包)
node_modules/@types/react/index"
型
这里有一些实验性的钩子(比如“React.experimental_usebutEvent”):
node_modules/react/index"
型
CRA和Vite都会发生这种情况,我尝试使用标准JS构建(没有TS,没有tsconfig文件)。
我如何才能到达React的代码的那一部分?谢谢
1条答案
按热度按时间cczfrluj1#
这有两个(或三个)方面(都在the documentation中显示,尽管#2有点微妙[它在顶部,但不在代码示例中]):
1.您必须使用
react@experimental
和react-dom@experimental
模块。1.这个钩子的名字是
experimental_useEffectEvent
,而不仅仅是useEffectEvent
。于是:
字符串
或者(现在):
型
Codesandbox example的
如果你使用的是TypeScript,你需要阅读
@types/react
模块的experimental.d.ts
文件中的说明,看看如何让TypeScript识别实验性钩子。有几种不同的方法;其中一种更简单的方法是将其添加到项目中的任何文件中(我使用的是App.tsx
):型
FWIW,以下是我如何使用实验功能引导一个新项目:
npm create vite@latest
(我使用Vite.js作为我的编译器)。npm install react@experimental react-dom@experimental
个App.tsx
替换为:当我运行它的时候,我在页面上得到
typeof useEffectEvent: function
。我不使用
create-react-app
,但我确实短暂地尝试过,但在将React升级到实验版本时遇到了依赖性问题。