抱歉,如果这是一个愚蠢的问题,我是 JavaScript 和 React 新手。需要使用 UseCallback 来包装回调函数以避免重新创建函数,因为它是在功能组件中定义的,每次状态更改时都会重新运行。为什么我们不直接在功能组件之外定义回调来避免这个问题呢?
// define handleClick here instead?
// const handleClick ...
function MyComponent() {
// handleClick is re-created on each render
const handleClick = () => { console.log('Clicked!'); };
}
Run Code Online (Sandbox Code Playgroud)
如果函数是在组件外部定义的,则它无法使用有用的动态值,否则可以在组件内部轻松引用这些值。最重要的是,状态和道具 - 外部函数不会具有内部定义的标识符的范围。
如果函数不需要任何此类动态值 - 举一个愚蠢的例子:
function alertError() {
alert('There was an error');
}
Run Code Online (Sandbox Code Playgroud)
那么在组件之外定义它就完全没问题(并且比不必要的复杂化更可取useCallback)
| 归档时间: |
|
| 查看次数: |
1158 次 |
| 最近记录: |