[英]Using `useEffect()` inside of a function
我在FlyerChat中遇到了以下代码。
import * as React from 'react'
export const usePrevious = <T>(value: T) => {
const ref = React.useRef<T>()
React.useEffect(() => {
ref.current = value
}, [value])
return ref.current
}
function 被称为
const previousChatMessages = usePrevious(chatMessages);
我很难理解将值存储在 function 中的ref
中并使用useEffect
与仅保留其值有何不同。
看起来是因为库维护者不想在您更改chatMessages
时重新呈现
来自 React 文档:
请记住,useRef 不会在其内容更改时通知您。 改变 the.current 属性不会导致重新渲染。 如果您想在 React 将 ref 附加或分离到 DOM 节点时运行一些代码,您可能需要使用回调 ref 来代替。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.