Skip to content

Home > @unseenco/backstage-core > onChange

onChange() function

Calls callback every time the pointed value of pointer changes.

Signature:

typescript
export declare function onChange<P extends PointerType<$IntentionalAny> | Prism<$IntentionalAny>>(pointer: P, callback: (value: P extends PointerType<infer T> ? T : P extends Prism<infer T> ? T : unknown) => void, rafDriver?: IRafDriver): VoidFn;

Parameters

ParameterTypeDescription
pointerPA Pointer (like object.props.x)
callback(value: P extends PointerType<infer T> ? T : P extends Prism<infer T> ? T : unknown) => voidThe callback is called every time the value of pointer changes
rafDriverIRafDriver(optional) The rafDriver to use. Learn how to use rafDrivers [from the docs](https://www.backstagejs.com/docs/latest/manual/advanced\#rafdrivers).

Returns:

VoidFn

An unsubscribe function

Example

Usage:

ts
import {getProject, onChange} from '@unseenco/backstage'

const obj = getProject("A project").sheet("Scene").object("Box", {position: {x: 0}})

const usubscribe = onChange(obj.props.position.x, (x) => {
  console.log('position.x changed to:', x)
})

setTimeout(usubscribe, 10000) // stop listening to changes after 10 seconds