首页 > 解决方案 > React 创建永远不会重建的自定义 Hook

问题描述

我正在使用没有状态的自定义钩子,并希望“保留”该钩子。

该钩子被调用useMessage()并且应该只在第一个渲染周期中重建,因为我在那里不使用任何状态。

我想要一个全局钩子 redux hook useDispatch()

这怎么可能?

编辑:

我只想有一个参考/一个我的钩子,而不是一直重新渲染!有什么方法可以记住钩子吗?我的目标是我能够在例如 useEffect() 的依赖项中添加钩子,这永远不会导致 useEffect() 的重新运行。就像 useDispatch / useRef / ...

标签: reactjsreact-hooks

解决方案


我不确定这是否是你的意思 - 但试试这个:

const [myValue] = useState(() => myInitialValue);

useState 接受一个回调函数作为参数,它只会在你的组件第一次渲染时执行。对于所有未来的渲染,它将返回从您的函数返回的第一个值。


推荐阅读