Reactjs 获取renderHook';结果不止一次

Reactjs 获取renderHook';结果不止一次,reactjs,react-testing-library,Reactjs,React Testing Library,我得到了一个调用renderHook的测试,如下所示: const { result } = renderHook(() => useMyHook(useDispatch()), wrapper); { // 1st time const { result } = renderHook(() => useMyHook(useDispatch()), wrapper); // validate result of creating 1st hook in here } {

我得到了一个调用
renderHook
的测试,如下所示:

const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
{
  // 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
}
这一切都很好,工作正常,我可以在
result.current
中获得返回值

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


那么,我如何能多次调用它呢?

既然每次测试只需要测试一个钩子,那么您可能必须首先卸载当前组件:

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

// ... do what you need with result

unmount();

// call your new hook...
const { result } = renderHook(() => useNewHook(useDispatch()), wrapper);

我可能不在,但看起来你是在打这样的电话:

const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
在这种情况下,您试图重新定义变量
result

您可以按如下方式确定其范围:

const { result } = renderHook(() => useMyHook(useDispatch()), wrapper);
{
  // 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
}

尝试清除而不是卸载