Is there a way to append the suggestions container to the body?
See original GitHub issueAre you reporting a bug?
I am using the autosuggest within a component which uses overflow-x: hidden, this makes the overflow-y: auto (you can’t set it to visible), which leads to a problem where the suggestions box does not overflow out of the parent container even if I make it absolute.
It is similar to the discussion here: https://stackoverflow.com/questions/6421966/css-overflow-x-visible-and-overflow-y-hidden-causing-scrollbar-issue
It is similar to this reported issue: https://github.com/moroshko/react-autosuggest/issues/112
Codepen: https://codepen.io/gaurav5430/pen/YzPVoOe
Steps to reproduce:
- Focus on the input field
- Type
c
, and wait for suggestions to appear
Observed behaviour: Suggestions do not appear
Expected behaviour: Suggestions should appear
One solution to the problem is to append the suggestion box to body, since in my case, I can’t control the overflow property of the parent.
Is there currently a way to append the suggestions to the body? Also, would any accessibility functionality break if we append it to the body using something like a react portal ?
Issue Analytics
- State:
- Created 4 years ago
- Reactions:1
- Comments:9
I was able to resolve this issue in particular by using
ReactDOM.createPortal
andrenderSuggestionsContainer
. Something like this:This does seem to retain all the accessibility stuff, keyboard listeners and everything.
Some pain points are:
@gaurav5430 Great solution.
Some pointers:
<div className="react-autosuggest__container">
you don’t need to repeat the styling (except for the dynamic parts)containerProps.className.indexOf('react-autosuggest__suggestions-container--open') >= 0
to know the state of the container. Probably not as robust but it works for me.