reactjs - React 创建永远不会重建的自定义 Hook
问题描述
我正在使用没有状态的自定义钩子,并希望“保留”该钩子。
该钩子被调用useMessage()
并且应该只在第一个渲染周期中重建,因为我在那里不使用任何状态。
我想要一个全局钩子 redux hook useDispatch()
。
这怎么可能?
编辑:
我只想有一个参考/一个我的钩子,而不是一直重新渲染!有什么方法可以记住钩子吗?我的目标是我能够在例如 useEffect() 的依赖项中添加钩子,这永远不会导致 useEffect() 的重新运行。就像 useDispatch / useRef / ...
解决方案
我不确定这是否是你的意思 - 但试试这个:
const [myValue] = useState(() => myInitialValue);
useState 接受一个回调函数作为参数,它只会在你的组件第一次渲染时执行。对于所有未来的渲染,它将返回从您的函数返回的第一个值。
推荐阅读
- macos - 如何在使用 Xcode 12 的 macOS 程序的 Tableview 中为 NSComboBoxCell 编码数据源?
- c# - 检查用户名时出现“System.Data.SqlClient.SqlException:列名无效”
- glidejs - 如何在 glide.js 的同一页面上的 2 个滑块上添加 2 个箭头主题
- unity3d - 在 Unity 中将相机模糊添加到 AR 应用程序
- reactjs - 迁移到反应的引导模板示例无法按预期工作(羽毛图标和图形未显示,排版有小问题)
- flutter - 将控制器添加到嵌套在 NestedScrollView 内的 ListView 时,浮动 SliverAppBar 无法正确响应
- sql - RSA 中的任何真实世界示例以及 oracle 中的 ORDS
- c# - 使用 Unity 中的 OpenCV C++ 时出现内存泄漏
- javascript - 在表单中执行操作之前执行一些代码
- node.js - node js fluent-ffmpeg 创建缩略图