Клонируйте объект tranches[0]
вместо того, чтобы поменять его, чего вы можете достичь кратко с помощью распространения объекта:
handleAjouter = (start, end, date) => {
const [firstTranch] = this.state.tranches;
this.setState({
tranches: [
{ ...firstTranch, start, end },
...tranches.slice(1) // needed if the array can contain more than one item
]
});
}
Если вам нужно вставить измененный транш по определенному индексу, клонируйте массив и вставьте транш:
const tranches = this.state.tranches.slice();
tranches[index] = { ...tranches[index], someOtherProp: 'foo' };