this.setState não está mesclando estados como eu esperaria

Eu tenho o seguinte estado:

this.setState({ selected: { id: 1, name: 'Foobar' } });  

Então eu atualizo o estado:

this.setState({ selected: { name: 'Barfoo' }});

Como o setState é para mesclar, eu esperaria que fosse:

{ selected: { id: 1, name: 'Barfoo' } }; 

Mas em vez disso, ele come o id e o estado é:

{ selected: { name: 'Barfoo' } }; 

Esse comportamento é esperado e qual é a solução para atualizar apenas uma propriedade de um objeto de estado aninhado?