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