代码之家  ›  专栏  ›  技术社区  ›  Aminadav Glickshtein

如何跟踪反应钩?

  •  3
  • Aminadav Glickshtein  · 技术社区  · 7 年前

    在开发一个新的React项目之前,我想确保有(或将有)好的开发工具来支持它。

    我喜欢React的一个地方是Google Chrome的React开发工具。它允许我检查每个组件的内部状态。

    问题是:

    如果没有,我如何检查反应组件之外的内部钩子状态(Aka effect)?

    1 回复  |  直到 7 年前
        1
  •  15
  •   Yangshun Tay    7 年前

    你想要的方式 . 你可以跟踪它的执行进度 here

    答案是肯定的,React Devtool在技术上确实显示了hooks的状态,但并不是您习惯的用户友好格式。该状态以其原始实现形式显示,它类似于一个链接列表:

    {
      baseState: ...,
      baseUpdate: ...,
      memoizedState: ...,
      next: {
        baseState: ...,
        baseUpdate: ...,
        memoizedState: ...,
        next: ..., // The list goes on
        queue: ...,
      },
      queue: ...
    }
    

    对于具有两种状态的简单组件,Devtool将状态显示为 baseState 字段作为的第一个状态值 'Mary' 还有一个 next 基态 价值 10 .

    function App() {
      const [name, setName] = useState('Mary');
      const [age, setAge] = useState(10);
    
      return (
        <div>
          <p>Name: {name}</p>
          <p>Age: {age}</p>
        </div>
      );
    }
    

    enter image description here

        2
  •  2
  •   Aminadav Glickshtein    7 年前
        3
  •  0
  •   aldo sota    6 年前

    react-debug-hooks Redux DevTools

    inspect preview

      const [state, setState] = React.useState({
        loading: false,
        users: [],
        error: null
      }, 'users')  // you need to set a second parameter 'string' that will be shown on Redux devTools.