20CAKE20.JS
04-state

State

14

04-state/10-watch-sources.tsx

Watch Sources

Example

Official Cake20 View example for watch sources.

export const data = {
  price: 12000,
  quantity: 2,
};

export const watch = {
  total: {
    source: () => [data.price, data.quantity] as const,
    run(value: readonly [number, number], previous?: readonly [number, number]) {
      console.log("total", previous, value);
    },
  },
};

export default () => (
  <Button onClick={() => data.quantity++}>₩{(data.price * data.quantity).toLocaleString()}</Button>
);