【问题标题】:Is it possible to use react hooks in react native?是否可以在本机反应中使用反应挂钩?
【发布时间】:2018-11-09 13:30:55
【问题描述】:

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

有没有办法在 React Native 中使用 Hooks? 或者有谁知道它们是否会在未来实施?

【问题讨论】:

标签: react-native react-hooks


【解决方案1】:

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

  1. package.json 中将你的 react 依赖更改为 16.7.0-alpha
  2. 克隆react
  3. cd react
  4. yarn install
  5. yarn build -- --type=RN_OSS
  6. build/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

【讨论】:

    【解决方案2】:

    是的!

    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

    【讨论】:

      【解决方案3】:

      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。 相反,您可以:

      1. 来自 React 函数组件的调用 Hooks

      2. 从自定义 Hooks 调用 Hooks

      下面提到了一些基本的 Hooks

      使用状态

      使用效果

      使用上下文

      一些额外的钩子

      使用减速器

      使用回调

      使用备忘录

      使用引用

      使用ImperativeHandle

      使用布局效果

      使用调试值

      更多信息请阅读以下文档

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-04
        • 1970-01-01
        • 2021-02-05
        • 2021-07-01
        • 1970-01-01
        • 2021-07-19
        • 1970-01-01
        相关资源
        最近更新 更多