Как добавить в setState (react-typescript hooks) массив?

Для добавления массива в состояние (state) с использованием хуков React и TypeScript можно воспользоваться методом useState для создания состояния и методом setCallback для изменения этого состояния.

Вот пример кода:

import React, { useState } from "react";

interface MyComponentState {
  array: string[];
}

const MyComponent: React.FC = () => {
  const [state, setState] = useState<MyComponentState>({ array: [] });

  const addToArray = (item: string) => {
    setState((prevState) => ({
      ...prevState,
      array: [...prevState.array, item],
    }));
  };

  return (
    <div>
      <button onClick={() => addToArray("Item 1")}>Add Item 1</button>
      <button onClick={() => addToArray("Item 2")}>Add Item 2</button>
      <button onClick={() => addToArray("Item 3")}>Add Item 3</button>
      
      <ul>
        {state.array.map((item, index) => (
          <li key={index}>{item}</li>
        ))}
      </ul>
    </div>
  );
};

export default MyComponent;

В этом примере мы используем хук useState для создания состояния state, которое содержит массив array. При клике на кнопку "Add Item 1", "Add Item 2" или "Add Item 3" вызывается функция addToArray, которая принимает новый элемент в качестве параметра.

Функция addToArray использует метод setState для обновления состояния state. Внутри setState мы используем функцию обратного вызова, чтобы получить предыдущее состояние prevState и объединить его с новым элементом массива, используя оператор расширения .... Это создает новый массив, содержащий и предыдущие элементы массива prevState.array и новый элемент item. Затем мы обновляем состояние array в объекте состояния prevState с помощью оператора ..., чтобы создать новый объект состояния с обновленным массивом.

Наконец, мы отображаем элементы массива state.array, используя метод map, и выводим их в виде списка <ul>. Каждый элемент массива отображается в виде отдельного элемента списка <li>.

Надеюсь, это поможет вам добавить массив в состояние с использованием хуков React и TypeScript!