Skip to content

useMessageRequest

将 postMessage 的请求和响应进行封装,方便使用。

使用示例

ts
const { postAsync: getFormDefine } = useMessageRequest<FormDefineVO>({
  postMessageHandler: () =>
    iframeRef.current?.contentWindow?.postMessage({ type: "form:save" }, "*"),
  isMessageOk: (e) =>
    e.data?.type === "form:saveDefine" &&
    e.source === iframeRef.current?.contentWindow,
  postAsyncThen: (e) => {
    const define = e.data?.payload;
    return define;
  },
});

useEffect(() => {
  const formDefine = await getFormDefine();
}, []);