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
}
尝试清除而不是卸载