@fcannizzaro/streamdeck-react

Lifecycle Hooks

React hooks for Stream Deck action lifecycle events.

useWillAppear

Fires once when the action instance appears and the React root is mounted. Use this for initialization logic.

function useWillAppear(callback: (payload: WillAppearPayload) => void): void;
interface WillAppearPayload {
  settings: JsonObject;
  controller: 'Keypad' | 'Encoder';
  isInMultiAction: boolean;
}
function DashboardKey() {
  const [data, setData] = useState(null);

  useWillAppear(() => {
    // Fetch initial data when the key appears
    fetchData().then(setData);
  });

  // ...
}

useWillDisappear

Fires when the action is about to disappear (the React root is being unmounted).

function useWillDisappear(callback: () => void): void;
function StreamingKey() {
  const connectionRef = useRef(null);

  useWillAppear(() => {
    connectionRef.current = openConnection();
  });

  useWillDisappear(() => {
    connectionRef.current?.close();
  });

  // ...
}

Note on Cleanup

Because onWillDisappear unmounts the entire React root, useEffect cleanup functions already handle teardown. useWillDisappear is a convenience for explicit opt-in to the Stream Deck lifecycle event, but standard useEffect cleanup patterns work the same way.

On this page