javascript - 在 React 中转换为函数式组件时面临的问题
问题描述
这是一个非常小的两页项目,因此不会花费太多时间。
我正在尝试将此Github 存储库从基于类的组件转换为功能组件。我非常接近,但逻辑无法正常工作。特别是 useState 钩子,因为值没有被保存。所以我尝试了不同的方法。
这是原始项目的现场演示的预期输出:
https://matt-eric.github.io/web-audio-fft-visualization-with-react-hooks/
这就是我所在的地方。这是沙盒链接。
暂时忽略The error you provided does not contain a stack trace.
错误。单击x
并刷新小project window
(不是您的浏览器选项卡)几次,直到刷新时播放音频。这是因为谷歌阻止你在加载时播放音乐。
我想通过单击按钮而不是加载来播放音频。但它不起作用。
感谢任何人去调查它。
解决方案
需要进行一些清理,但这是有效的。https://codesandbox.io/s/xenodochial-wildflower-c5b35
我真正所做的只是将所有函数放在useCallback
一个audioFile
ref 中,然后toggleAudio
根据其当前状态创建播放或暂停音频的函数。我看到的最大问题之一是您试图在单击时初始化音频,但这确实应该在安装时完成,然后当您单击时音频才开始。此外,如果您在每次点击时都进行初始化,则会导致错误,因为它已经初始化。
如果您有任何问题,请告诉我!
推荐阅读
- android - android.database.sqlite.SQLiteException:没有这样的列:存在
- python - 类型错误:删除()缺少 1 个必需的位置参数:'trip_id'
- javascript - 如何在 Firebase Cloud 函数中调用两个函数
- php - 从 php 调用 MSSQL 存储过程
- angular - Ag-grid 标题不固定在滚动上
- excel - 运行时错误 438 - 适用于 excel 2016 而不是 excel 2010
- javascript - 使用 Google Places API 进行多次输入不起作用
- r - 在 Shiny 中绘制 Kaplan-Meier 图
- powershell - 如何从数组值创建自定义对象
- unity3d - 如何在 Photon Unity 中获取封闭房间的名称?