2014-12-09 24 views
8

Quando si imposta lo stato iniziale di un componente, utilizzando i dati passati in via oggetti di scena, dovrei creare un nuovo oggetto, facendo qualcosa di simile ...Reagire getInitialState utilizzando oggetti di scena

getInitialState: function() { 
    return { 
     fieldData: JSON.parse(JSON.stringify(this.props.data)) 
    }; 
} 

o è sicuro di fare solo ...

getInitialState: function() { 
    return { 
     fieldData: this.props.data 
    }; 
} 
+0

È necessario fornire ulteriori informazioni. Questa domanda è troppo vaga come è. Stai mutando fieldData in qualche modo? Lo mandi solo quando l'utente fa clic su Salva? ecc. – FakeRainBrigand

risposta

7

Trasferimento di oggetti di scena allo stato del componente è considerata una cattiva pratica: http://facebook.github.io/react/tips/props-in-getInitialState-as-anti-pattern.html

potrebbe essere meglio per cons ider un approccio diverso. È possibile accedere direttamente agli oggetti di scena e il componente si aggiornerà quando gli oggetti di scena vengono cambiati.

+4

È accettabile per ottenere lo stato iniziale: "Tuttavia, non è un anti-pattern se si rende chiaro che la sincronizzazione non è l'obiettivo qui:" –

+2

come mai gli esempi di uiexplorer lo fanno nel reac repo nativo? – SuperUberDuper

+1

* Perché * è questa cattiva pratica? –

Problemi correlati