Using toString() as a hack to generate keys for react-select component
One possible down-site of this could be a performance issue and this depends on how toString() is implemented.

On my case I did it like this : 

let options = [
  {
    label: 'Color',
    value: {
      r: 123,
      g: 78,
      b: 198,
      toString: function(){
        return uuid.v1();
      }
    }
  }
]


Whenever the state or props are updated React uses a diff. algorithm to check if it's VirtualDOM and DOM corresponds, which means every time React looped through options they had a different key value and React re-rendered every option no matter if their value changed or not.

In my case a fix was to hash the value object using this library;

let options = [
  {
    label: 'Color',
    value: {
      r: 123,
      g: 78,
      b: 198,
      toString: function(){
        return hash(this);
      }
    }
  }
]