Question: I have a string like this,

```
var str = " This is a ?sample? text to ?extract? question marks separated texts into an array in ?Javascript?. "

```

I want a javascript array as below,

```
arr = {
        'sample',
        'extract',
        'Javascript'
      }

```

Answer: 
You didn't close your `tags` properly. update your code as per below:

```
  <div className="sub-flex-container">
        <div className="co pt-4">
      <ul className="flex-container sub-list">
        <li>women</li>
        <li>mens</li>
        <li>health & beauty</li>
      </ul>
      <span onClick={this.showMenu} className="pl-3 hamburger hide-big pb-4"><Icon type="menu" /></span>
      <div className="mobile-menu-display" id="mySidebar" style={{display: this.state.isShown ? 'block' : 'none' }}>
        <span onClick={this.hideMenu} className="float-right font-weight-bold hide-big close">X</span>
      </div>
      </div>

    <div className="co">
...

```
You need to ensure that the event is not passed again to the outer container.
In your case the event is triggered by the inner element which leads to a hideMenu but afterward the event is propagated to the outer container which leads to a recall of showMenu.

Additional reading about the can be found here:
<https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation>
<https://www.w3schools.com/jsref/event_stoppropagation.asp>

Seems like Padi Dev also found the problem before me :)