Zendesk:在 zendesk 的 React 应用程序中放置 .on('ticket.updated' 的位置

问题描述 投票:0回答:1

目前我有这段代码将票证更新功能放在使用效果中。 问题是,每当我更改使用效果挂钩的值时,它似乎都会触发 on(ticket.updated) 例如,我将表单值更改 3 次,on(ticket.updated) 内部的函数也被调用 3 次

现在我尝试在使用效果之外调用该函数,但这种方式使用空值会导致更多错误。

所以我想知道在 React Zendesk 应用程序中调用的正确位置在哪里

  React.useEffect(async () => {

    console.log("FORM VALUE WAS CHANGED", formValue);
    zafClient.on('ticket.updated', function (e) {
  console.log("executed", formValue);
    }



  }, [formValue])

这是我用来从应用程序内部检查当前 formValue 的代码 执行的次数与表单值更改的次数一样多

reactjs react-hooks zendesk zendesk-api zendesk-app
1个回答
0
投票

您考虑过使用

useRef()
吗?

useRef()
可用于创建 zafClient 的新实例并在多个渲染周期中维护对象的状态。

您可能想尝试一下:

const zafClientRef = useRef();

useEffect(() => {
 zafClientRef.current = zafClient;

 zafClientRef.current.on('ticket.updated', function (e) {
   console.log("executed", formValue);
 });

 return () => {
   zafClientRef.current.off('ticket.updated');
 };
}, []);
© www.soinside.com 2019 - 2024. All rights reserved.