Skip to content

Commit d482060

Browse files
authored
Improve unsubscription
This is to prevent the usual Warning "Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application."
1 parent 2f7ae68 commit d482060

File tree

1 file changed

+11
-22
lines changed

1 file changed

+11
-22
lines changed

src/useKeyboard.ts

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,19 @@ export default function useKeyboard() {
2727
}
2828

2929
useEffect(() => {
30-
const keyboardWillShowListener = Keyboard.addListener(
31-
'keyboardWillShow',
32-
handleKeyboardWillShow,
33-
)
34-
const keyboardDidShowListener = Keyboard.addListener(
35-
'keyboardDidShow',
36-
handleKeyboardDidShow,
37-
)
38-
const keyboardWillHideListener = Keyboard.addListener(
39-
'keyboardWillHide',
40-
handleKeyboardWillHide,
41-
)
42-
const keyboardDidHideListener = Keyboard.addListener(
43-
'keyboardDidHide',
44-
handleKeyboardDidHide,
45-
)
30+
Keyboard.addListener('keyboardWillShow', handleKeyboardWillShow);
31+
Keyboard.addListener('keyboardDidShow', handleKeyboardDidShow);
32+
Keyboard.addListener('keyboardWillHide', handleKeyboardWillHide);
33+
Keyboard.addListener('keyboardDidHide', handleKeyboardDidHide);
4634

4735
return () => {
48-
keyboardWillShowListener.remove()
49-
keyboardDidShowListener.remove()
50-
keyboardWillHideListener.remove()
51-
keyboardDidHideListener.remove()
52-
}
53-
}, [])
36+
Keyboard.removeListener('keyboardWillShow', handleKeyboardWillShow);
37+
Keyboard.removeListener('keyboardDidShow', handleKeyboardDidShow);
38+
Keyboard.removeListener('keyboardWillHide', handleKeyboardWillHide);
39+
Keyboard.removeListener('keyboardDidHide', handleKeyboardDidHide);
40+
};
41+
}, []);
42+
5443

5544
return {
5645
keyboardShown: shown,

0 commit comments

Comments
 (0)