fix: 打開不同對話時, 使用了同一個 ChatFragment
* 並修復了使用 key 時, 因爲卸載組件后 ref 丟失導致的錯誤
This commit is contained in:
@@ -173,7 +173,8 @@ export default function App() {
|
||||
}
|
||||
{
|
||||
isShowChatFragment && <ChatFragment
|
||||
target={currentChatId} />
|
||||
target={currentChatId}
|
||||
key={currentChatId} />
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -109,6 +109,7 @@ export default function AppMobile() {
|
||||
<ChatFragment
|
||||
showReturnButton={true}
|
||||
onReturnButtonClicked={() => setIsShowChatFragment(false)}
|
||||
key={currentChatId}
|
||||
target={currentChatId} />
|
||||
</div>
|
||||
</mdui-dialog>
|
||||
|
||||
@@ -3,6 +3,6 @@ import * as React from 'react'
|
||||
export default function useEventListener<T extends HTMLElement | null>(ref: React.MutableRefObject<T>, eventName: string, callback: (event: Event) => void) {
|
||||
React.useEffect(() => {
|
||||
ref.current!.addEventListener(eventName, callback)
|
||||
return () => ref.current!.removeEventListener(eventName, callback)
|
||||
return () => ref.current?.removeEventListener(eventName, callback)
|
||||
}, [ref, eventName, callback])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user