import { useState } from 'react';
export default () => {
const [value, setValue] = useState('');
return {
value,
onClick: (event) => {
setValue(event.target.value);
},
reset: () => setValue('')
};
};
Я не уверен, как это проверить, потому что в приведенном ниже примере мы возвращаем значение, но не объект значения и функции, использующие хук.
https://dev.to/itsjoekent/write-functional-tests-for-react-hooks-4b07
Я пытался использовать упаковщик, но получаю:
import React from 'react';
import { shallow, mount } from 'enzyme';
export default function testHook(runHook, flushEffects = true) {
function HookWrapper() {
const output = runHook();
return (
<span output={output} />
);
}
const wrapperFunc = flushEffects ? mount : shallow;
const wrapper = wrapperFunc(<HookWrapper />);
return wrapper.find('span').props().output;
}
Недопустимый вызов ловушки. Хуки могут быть вызваны только внутри тела компонента функции. Это может произойти по одной из следующих причин: 1. У вас могут быть несовпадающие версии React и средства визуализации (например, React DOM). 2. Возможно, вы нарушаете Правила крючков. 3.