React Native钩子破坏了热重装?

时间:2019-06-07 07:53:14

标签: react-native react-hooks

热重装可以很好地用于类组件,但是对于带有钩子的功能组件,例如useState,热重装可以重置其值。

1 个答案:

答案 0 :(得分:1)

挂钩依赖于调用顺序。

  

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

     

每个组件都有一个内部的“内存单元”列表。它们只是JavaScript对象,我们可以在其中放置一些数据。当您调用类似于useState()的Hook时,它将读取当前单元格(或在第一个渲染期间将其初始化),然后将指针移至下一个单元格。这就是多个useState()调用的方式分别获得独立的本地状态的方式。


  

来自https://github.com/gaearon/react-hot-loader

     

获得支持

     

如果需要,挂钩将在HMR上自动更新。只有一个条件-非零依赖性列表。

❄️ useState(initialState); // will never updated (preserve state)
❄️ useEffect(effect); // no need to update, updated on every render
❄️ useEffect(effect, []); // "on mount" hook. "Not changing the past"
? useEffect(effect, [anyDep]); // would be updated

? useEffect(effect, ["hot"]); // the simplest way to make hook reloadable
  

要禁用挂钩重装-设置配置选项:

import { setConfig } from 'react-hot-loader';

setConfig({
  reloadHooks: false,
});