Safe way of creating unique IDs
I've noticed you have a common bug that often occurs in Javascript code called a race condition.

If uniqueIdCreatorHandler is called again before a previous call finishes there is a race condition created because state.ids is replaced at the end of the call. 

If both calls happen at the same time they each generate a unique copy of the original state.ids then overwrite state this.setState({ ids: ids });. This causes the first change to state.ids to be forgotten.

This is a direct result caused by replacing state. this.setState({ ids: ids });

As others have recommend I would simply keep a increment in state for new ids.

Note: you can easily demonstrate this in your code by adding and calling this method

double = () =&gt; {
  this.uniqueIdCreatorHandler()
  this.uniqueIdCreatorHandler()
}


Other comments
There are small improvements you could make to your code like spreading the mapped ids into Math.max.

I wouldn't worry too much about Javascript performance, focus on readability. Make variable names more verbose and add doc blocks to methods.

One thing I like to see (which you have done) is the embrace of array methods. Although they may not be necessary here they are a strong indicator of comprehension.

Keep it up!