Skip to content

Commit a62e924

Browse files
authoredApr 11, 2022
fix(Menu): 修复 Menu 使用 React.StrictMode 报错 (#758)
1 parent 1d6ea8d commit a62e924

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed
 

‎packages/react-menu/src/SubMenu.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -88,21 +88,21 @@ export const SubMenu = React.forwardRef(function <Tag extends TagType = 'a'>(
8888
}
8989
}
9090
function onExit(node: HTMLElement) {
91-
node.style.height = `${node.scrollHeight}px`;
91+
node && (node.style.height = `${node.scrollHeight}px`);
9292
setIsOpen(false);
9393
}
9494
function onExiting(node: HTMLElement) {
95-
node.style.height = '0px';
95+
node && (node.style.height = '0px');
9696
}
9797
function onEnter(node: HTMLElement) {
98-
node.style.height = '1px';
98+
node && (node.style.height = '1px');
9999
setIsOpen(true);
100100
}
101101
function onEntering(node: HTMLElement) {
102-
node.style.height = `${node.scrollHeight}px`;
102+
node && (node.style.height = `${node.scrollHeight}px`);
103103
}
104104
function onEntered(node: HTMLElement) {
105-
node.style.height = 'initial';
105+
node && (node.style.height = 'initial');
106106
}
107107

108108
if (!collapse) {

‎packages/react-overlay/src/index.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export default function Overlay(props: OverlayProps) {
6565
// const [isOpen, setIsOpen] = useState(props.isOpen || false);
6666
const [visible, setVisible] = useState(false);
6767
const container = useRef<HTMLDivElement>(null);
68-
const overlay = useRef<HTMLDivElement>(null);
68+
const overlay = useRef(null);
6969
useEffect(() => {
7070
if (isOpen !== props.isOpen && props.isOpen) {
7171
setVisible(true);
@@ -138,6 +138,7 @@ export default function Overlay(props: OverlayProps) {
138138
onEntered={onOpened}
139139
onExiting={onClosing}
140140
onExited={handleClosed}
141+
nodeRef={overlay}
141142
{...otherProps}
142143
>
143144
{(status) => {

0 commit comments

Comments
 (0)
Please sign in to comment.