How can I make React Portal work with React Hook?
React Portal 提供了一种将子节点渲染到存在于父组件 DOM 层级之外的 DOM 节点的方法。这通常用于当你需要子组件脱离父组件的层级,例如在弹窗(modals)或者提示框(tooltips)的场景中。在 React Portal 中使用 React Hook 和在普通组件中使用没有什么不同。下面我将通过创建一个简单的模态框(modal)组件来演示如何在 React Portal 中使用 React Hook。首先,假设我们有一个 modal 的 root 元素在 HTML 文件中:接下来,我们创建一个 组件,它将使用 和 这两个 Hook,以及 来渲染内容到 :在上面的 组件中:使用 创建了一个 ,它是一个 DOM 元素,在组件的生命周期内保持不变。用来处理挂载和卸载逻辑,确保 被添加到 ,并且在组件卸载时移除。方法用来在 里渲染 组件的子元素。组件中包含了一个按钮,用于切换模态框的可见性,以及一个条件渲染的 组件,它显示了如何实现一个基本的模态框功能。在这个例子中, 用于控制模态框的显示状态。这就是在 React Portal 中使用 React Hook 的方式,你可以像在普通组件中一样,在 Portal 中使用诸如 , , , 等 Hook。