首页 > 解决方案 > 将自定义反应钩子作为道具传递是否有任何潜在问题

问题描述

我有一个组件使用的自定义反应钩子,但我不想从全局上下文中获取钩子,我想在 props 中定义它,如下所示。

const useThingFn = () => {
  const doThing = () => console.log('Did thing')
  const data = 'hello'
  return { data, doThing }
}

const Component = ({
  // Hooks
  useThing = useThingFn,
}) => {
  const { data, doThing } = useThing();

  return (
    <div>
      <button
        onClick={doThing}
      >
        Click Me
      </button>
      {data}
    </div>
  );
};

这有什么潜在的问题吗?目的是在测试中轻松模拟钩子。

标签: reactjsreact-hooks

解决方案


推荐阅读