← Усі задачіReact · Junior

Хук useToggle

Напишіть хук useToggle(initial = false). Він повертає масив [value, toggle]: поточне булеве значення і функцію, яка його перемикає.

Функція toggle має бути тією самою між рендерами - щоб її можна було без втрат передавати в мемоізовані компоненти й залежності ефектів.

Тести (4)

  1. const { result } = renderHook(() => useToggle());
    expect(result.current[0]).toBe(false);
  2. const { result } = renderHook(() => useToggle(true));
    expect(result.current[0]).toBe(true);
  3. const { result } = renderHook(() => useToggle());
    act(() => result.current[1]());
    expect(result.current[0]).toBe(true);
    act(() => result.current[1]());
    expect(result.current[0]).toBe(false);
  4. const { result } = renderHook(() => useToggle());
    const first = result.current[1];
    act(() => result.current[1]());
    expect(result.current[1]).toBe(first);