是否可以在 React Native 中使用 React Hooks?

Is it possible to use react hooks in react native?

在 React 文档中它说必须在组件内声明变量和侦听器挂钩,但是当我尝试这样做时 React native 会抱怨。

有什么方法可以在 React Native 中使用 Hooks 吗? 或者有人知道他们将来是否会实施吗?

有点,虽然 useEffect 不工作。目前的计划是通过 0.57.5 移动到 React 16.6,并允许人们选择使用带有选项 0.57.5-alpha 构建的钩子。如果你现在想使用钩子:

  1. package.json
  2. 中将您的反应依赖项更改为 16.7.0-alpha
  3. 克隆react
  4. cd react
  5. yarn install
  6. yarn build -- --type=RN_OSS
  7. 复制 build/react-native 到项目的 node_modules/react-native/Libraries/Renderer 目录。

您也可以使用this unofficial react-native build with hooks already included. Just remember that useEffect is not working at all with react-native, so you're better off probably waiting. You can read more about this discussion on this github issue

编辑:钩子来了!!!它们存在于 React 中,并已被确认为 React Native 0.59 中的一项功能,您甚至可以使用 current release candidate

是的!

React Hooks 是 0.59 版本的一部分。

引自 0.59 发行说明:

React Hooks are part of this [0.59] release, which let you reuse stateful logic across components

这里有一个 Hooks 的快速概述,可以帮助您入门:: https://reactjs.org/docs/hooks-overview.html

React 16.8.0 是第一个支持 Hooks 的版本。升级时,不要忘记更新所有包,包括 React DOM。自 React Native0.59 版本起,React Native 就支持 Hooks。

无重大更改

在我们继续之前,请注意 Hooks 是:

完全选择加入。 您可以在一些组件中尝试 Hooks,而无需重写任何现有代码。但你不必学习或使用 Hooks 如果你不想,现在就开始。

100% 向后兼容。 挂钩不包含任何重大更改。

现已上市。钩子现在可以在 v16.8.0 版本中使用。

仅从 React 函数调用挂钩

不要从常规 JavaScript 函数中调用 Hooks。 相反,您可以:

  1. 从 React 函数组件调用 Hooks

  2. 从自定义 Hooks 调用 Hooks

下面提到了一些基本的 Hooks

使用状态

使用效果

使用上下文

一些额外的钩子

使用Reducer

使用回调

使用备忘录

使用引用

使用命令句柄

使用布局效果

使用调试值

更多信息请阅读以下文档

https://reactjs.org/docs/hooks-intro.html