react-loader-advanced icon indicating copy to clipboard operation
react-loader-advanced copied to clipboard

Possible EventEmitter memory leak detected

Open ZephD opened this issue 6 years ago • 1 comments

possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.

Every instance of Loader adds a 'change' event listener in componentDidMount to the same EventEmitter. By default, if over 10 listeners are added with the same type (i.e. 'change') to a EventEmitter, events.js throws this error (should be warning imo) in the console.

It is a common scenario to use more than 10 loaders on one page, for example a dashboard of multiple async cards.

To reproduce, simply mount multiple loaders. (Code below untested)

import React from 'react'
import ReactDOM from 'react-dom'
import Loader from 'react-loader-advanced'

const App = () => (
  <div>
    <Loader show><div /></Loader>
    <Loader show><div /></Loader>
    <Loader show><div /></Loader>
    <Loader show><div /></Loader>
    <Loader show><div /></Loader>
    <Loader show><div /></Loader>
    <Loader show><div /></Loader>
    <Loader show><div /></Loader>
    <Loader show><div /></Loader>
    <Loader show><div /></Loader>
    <Loader show><div /></Loader>
  </div>
)

ReactDOM.render(<App />, document.body)

ZephD avatar Sep 07 '17 13:09 ZephD

This could be fixed in v1.7.0 (I did not test).

nygardk avatar Sep 30 '17 19:09 nygardk