Remplacer un objet dans le tableau sur l'état réagir

Cette question peut tomber un peu sur le côté d'une "meilleure pratique" en question, mais s'il vous plaît garder avec moi.

Voici une partie de mon état:

this.state = {
  typeElements: {
    headers: [
        {
          name: "h1",
          size: 70,
          lineHeight: 1.25,
          kearning: 0,
          marginAfter: 0
        }, {
          name: "h2",
          size: 70,
          lineHeight: 1.25,
          kearning: 0,
          marginAfter: 0
        }, {
          name: "h3",
          size: 70,
          lineHeight: 1.25,
          kearning: 0,
          marginAfter: 0
        }...

Ce que je dois faire est de REMPLACER l'objet à un index donné sur les en-têtes de tableau.

Je ne sais pas comment le faire avec la méthode setState comme dans this.setState(headers[1] = {obj}) - mais évidemment c'est non valide. Ma méthode actuelle est la création d'un nouveau tableau et de casser l'ancien comme ceci:

_updateStyle(props) {
  let newState = Object.assign({}, this.state)
  newState.typeElements.headers[props.index] = props
  this.setState(newState)
};

Pour ma petite hacky projet, je suppose que c'est OK mais j'ai l'impression que c'est super lourd et pourrait rapidement conduire à des problèmes de performances en tout genre de l'échelle.

OriginalL'auteur motleydev | 2016-10-06