【发布时间】:2018-11-09 13:30:55
【问题描述】:
在 react 文档中,它说必须在组件中声明变量和侦听器挂钩,但是当我尝试这样做时,React native 会抱怨。
有没有办法在 React Native 中使用 Hooks? 或者有谁知道它们是否会在未来实施?
【问题讨论】:
-
查看线程,它说 RN v0.59 将支持 React 钩子:github.com/facebook/react-native/issues/21967
在 react 文档中,它说必须在组件中声明变量和侦听器挂钩,但是当我尝试这样做时,React native 会抱怨。
有没有办法在 React Native 中使用 Hooks? 或者有谁知道它们是否会在未来实施?
【问题讨论】:
虽然useEffect 不起作用。目前的计划是通过 0.57.5 响应 16.6,并允许人们选择使用带有选项 0.57.5-alpha 构建的钩子。如果你现在想使用钩子:
16.7.0-alpha
cd reactyarn installyarn build -- --type=RN_OSSbuild/react-native 复制到项目的node_modules/react-native/Libraries/Renderer 目录中。您还可以将this unofficial react-native build 与已包含的挂钩一起使用。请记住 useEffect 根本无法与 react-native 一起使用,因此您最好等待。您可以在 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。自 0.59 发布 React Native 以来,React Native 支持 Hook。
无重大更改
在我们继续之前,请注意 Hooks 是:
• 完全选择加入。您可以在几个组件中试用 Hook,而无需重写任何现有代码。但你不必学习或使用 Hooks 如果你不想,现在就去。
• 100% 向后兼容。挂钩不包含任何重大更改。
• 现在可用。随着 v16.8.0 的发布,现在可以使用 Hooks。
仅来自 React 函数的调用挂钩
不要从常规 JavaScript 函数中调用 Hooks。 相反,您可以:
来自 React 函数组件的调用 Hooks
从自定义 Hooks 调用 Hooks
下面提到了一些基本的 Hooks
使用状态
使用效果
使用上下文
一些额外的钩子
使用减速器
使用回调
使用备忘录
使用引用
使用ImperativeHandle
使用布局效果
使用调试值
更多信息请阅读以下文档
【讨论】: