import { Dispatch, SetStateAction } from 'react'; /** * Treats a property of an object as a stand-alone state. * * This hook can be used to access a property of a complex state in a transparent way. * The returned value and setter can be treated in the same way as the ones * returned by `useState` directly. * * **Usage example:** * * ```jsx * const [object, setObject] = useState({ a: 'a', b: 1 }) * const [b, setB] = useProperty(object, setObject, 'b') * ... * return ( *
* Current value of B: {b} * *
* ) * ``` * Note that the above shows very simple case in which it would probably be better to allocate two different states, * there are situations though when you either cannot influence this (the object comes from above) * or it is beneficial to use the whole object as an atomic unit. * * @param object complex state value * @param updateObject function that updates the complex state by passing the current state into the callback and expecting a modified state back (just like `setState(prev => prev + 1)` * @param property name of the property of the `object` that is to be managed * @typeParam O type of the complex state * @typeParam P the actual managed property of `O` * @returns the same output as ˙useState˙, but scoping everything to the provided property * @category Hook */ export declare function useProperty(object: O, updateObject: Dispatch<(prevState: O) => O>, property: P): [O[P], Dispatch>]; //# sourceMappingURL=use-property.d.ts.map