in StrictMode, getContainer has side effect, duplicated div will be attached to Dom, please fix it.
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 45/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- react, typescript
- Domain
- frontend
Research direction
Start at the getContainer entry point and the PortalComponent usage shown in the issue, then reproduce the behavior in React StrictMode with a development popup. Verify that opening and closing the popup repeatedly leaves only the intended container in the DOM and does not create orphaned div elements.
Written by the indexing model from the issue text.
Description
let see the code bellow. In strict mode and dev environment, getContainer will be called twice, so double div will be attached to Dom, if we enable autoDestory, only one div will be removed after popup closed. That means every popup open and close will lead to one orphaned div, we may have multi divs in dom if we open and close popup muti times.
getContainer = () => {
const { getDocument } = this.props;
const popupContainer = getDocument(this.getRootDomNode()).createElement(
'div',
);
// Make sure default popup container will never cause scrollbar appearing
// https://github.com/react-component/trigger/issues/41
popupContainer.style.position = 'absolute';
popupContainer.style.top = '0';
popupContainer.style.left = '0';
popupContainer.style.width = '100%';
this.attachParent(popupContainer);
return popupContainer;
};
if (popupVisible || this.popupRef.current || forceRender) {
portal = (
<PortalComponent
key="portal"
getContainer={this.getContainer}
didUpdate={this.handlePortalUpdate}
>
{this.getComponent()}
</PortalComponent>
);
}
here give a screenshot.

- Dominant language
- TypeScript
- Stars
- 391
- Forks
- 245
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from react-component/trigger
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
react-component/trigger#593 · 1 reaction ·
-
Difficulty 3/5 1-2 days Newbie friendliness 58/100
react-component/trigger#623 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 65/100
react-component/trigger#618 · 1 comment ·
-
Difficulty 3/5 1-2 days Newbie friendliness 42/100
react-component/trigger#555 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
react-component/trigger#550 · 1 comment ·
All issues in react-component/trigger
Similar issues
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
dennys-bd/agent-hive#184 ·
-
Add: hunch Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
AbdelStark/awesome-typesafe#104 ·
-
ai-observability bug team/ai-observability
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
vicharanashala/fln#563 ·