Sobes.tech
Назад к вопросам
Middle
2

Реализуйте кастомный React-хук useSubState, который принимает полный state, функцию setState и имя ключа (поля объекта), и возвращает кортеж из значения этого поля и функции для его изменения — аналогично useState, но для конкретного поля большого объекта-состояния.

Компании, где спрашивали
Trading view

Ответ от нейросети

sobes.tech AI

jsx import { useCallback } from 'react';

function useSubState(state, setState, key) { const value = state[key];

const setValue = useCallback( (newValue) => { setState(prevState => ({ ...prevState, [key]: typeof newValue === 'function' ? newValue(prevState[key]) : newValue })); }, [key, setState] );

return [value, setValue]; }

// Использование: // const [subValue, setSubValue] = useSubState(state, setState, 'fieldName');