问题是你正在使用setIsOpen() 不正确。
您的代码初始化isOpen 像false, 您的代码暗示它可以是true 或false, 但这不是你设定的。这个setIsOpen() 功能更新isOpen 传递给它的值isOpen 属性,而不是布尔值。
当你打电话的时候setIsOpen({ isOpen: false }), 你没有设置isOpen 到false, 您正在将其设置为{ isOpen: false }. 你只需要通过true 或false:
<Button isDefault onClick={ () => setIsOpen(false) }>
请注意,这是React功能,与WordPress无关,因此您应该查看文档
useState().