【发布时间】:2021-02-17 08:07:28
【问题描述】:
背景
我正在开发一个可以从 UI 中的许多按钮打开的侧边栏组件。我想 1) 只渲染一次,2) 授予对这些按钮更新其isVisible 状态的访问权限,而无需通过共同的祖先向下钻取道具。
期望与现实
我希望我可以使用自己的 api 方法创建一个上下文来更新内部状态。在我的代码示例中,我尝试使用 IIFE 来执行此操作。
问题
- 这如何打破了钩子的规则?
- 我还能如何为此上下文提供更新功能?
export const SidebarContext = createContext((() => {
const [isVisible, setIsVisible] = useState(false)
return {
isVisible,
toggleVisibility: () => setIsVisible(!isVisible)
}
})())
【问题讨论】:
标签: javascript reactjs react-hooks use-state use-context