Ich bin gespannt, ob mir so etwas gelingt:
const [panelActive, setPanelActive] = useState(false); (globalThis as any).setPanelActive = setPanelActive; useEffect(() => console.log(panelActive), [panelActive])
Aus irgendeinem Grund wird es nicht ausgelöst, wenn ich es von außen rufe. setPanelActive
函数时,useEffect
如果您希望
globalThis.setPanelActive
与您正在执行的分配中的setPanelActive
一样工作,那么您就错了,挂钩被设计为在组件范围内工作在这种情况下,您必须在更高的级别上使用 上下文,如下所示:现在,当您从任何组件使用
setPanelActive
时,useEffect
应该触发感谢大家的参与。经过对 @hatana 提到的内容进行一些研究后,我找到了一个解决方案 - @hatana 。 com/DawChihLiou/eventbus-demo" rel="nofollow noreferrer">事件总线。它完全符合我的要求。