首页 > 解决方案 > 多次获取renderHook的结果

问题描述

我得到了一个这样的测试renderHook

const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);

这一切都很好并且工作,我可以在result.current..中获得返回值

好像我不能用 . 调用另一个钩子renderHook。如果我做同样的事情,那么它说result已经定义了。如果我将名称更改为其他名称,例如“res”,则表示 res 未定义,就像它仅适用于特定名称“result”。

那么我怎样才能多次调用它呢?

标签: reactjsreact-testing-library

解决方案


我可能会离开,但看起来你正在调用这样的东西:

const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);

在这种情况下,您正在尝试重新定义变量result

您可以像这样确定它的范围:

{
  // 1st time
  const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
  // validate result of creating 1st hook in here
}
{
  // 2nd time
  const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
  // validate result of creating 2nd hook in here
}

推荐阅读