是否可以在react native中使用react钩子?

时间:2018-11-09 13:30:56

标签: react-native react-hooks

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

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

3 个答案:

答案 0 :(得分:3)

排序,尽管FileTarget不起作用。当前的计划是以0.57.5的速度响应16.6,并允许人们选择使用带有0.57.5-alpha版本的钩子。如果要立即使用钩子:

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

您也可以将this unofficial react-native build与已经包含的钩子一起使用。请记住,node_modules/react-native/Libraries/Renderer不能与react-native一起使用,因此最好等待。您可以在this github issue上阅读有关此讨论的更多信息。

编辑:挂钩来了!!!它们在React中是实时的,并且已经在React Native 0.59中被确认为功能提供,您甚至可以使用current release candidate

答案 1 :(得分:1)

是的!

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

答案 2 :(得分:0)

React 16.8.0是第一个支持Hooks的版本。升级时,请不要忘记更新所有软件包,包括React DOM。自0.59的{​​{1}}版本以来,React Native支持Hooks。

没有重大变化

在继续之前,请注意,挂钩是:

完全选择加入。。您可以尝试在一些组件中使用Hook,而无需重写任何现有代码。但是您不必学习或使用挂钩    现在,如果您不想这么做。

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

现在可用。现在,v16.8.0发行版中都提供了挂钩。

仅来自React函数的呼叫挂钩

不要通过常规JavaScript函数调用Hook。 相反,您可以:

  1. 从React函数组件调用挂钩

  2. 从自定义挂钩中呼叫挂钩

下面提到了一些基本的挂钩

useState

useEffect

useContext

一些其他挂钩

useReducer

useCallback

useMemo

useRef

useImperativeHandle

useLayoutEffect

useDebugValue

有关更多信息,请阅读以下文档

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