← Усі задачіReact · Junior
Хук useToggle
Напишіть хук useToggle(initial = false). Він повертає масив [value, toggle]: поточне булеве значення і функцію, яка його перемикає.
Функція toggle має бути тією самою між рендерами - щоб її можна було без втрат передавати в мемоізовані компоненти й залежності ефектів.
Ctrl+Enter - запустити тести. Tab - відступ; щоб вийти з редактора клавіатурою, натисніть Esc, а потім Tab. Код зберігається в цьому браузері.
Тести (4)
const { result } = renderHook(() => useToggle()); expect(result.current[0]).toBe(false);
const { result } = renderHook(() => useToggle(true)); expect(result.current[0]).toBe(true);
const { result } = renderHook(() => useToggle()); act(() => result.current[1]()); expect(result.current[0]).toBe(true); act(() => result.current[1]()); expect(result.current[0]).toBe(false);
const { result } = renderHook(() => useToggle()); const first = result.current[1]; act(() => result.current[1]()); expect(result.current[1]).toBe(first);