Reagire: oggetto nidificato come stato rispetto alle singole proprietà

6

Esistono casi d'uso in cui un oggetto nidificato come stato è più ottimale / più facile da gestire rispetto alle singole proprietà?

Ad esempio, se volessi esprimere alcuni controlli utente per interagire con una foto in stato, potrei scrivere qualcosa di simile (oggetto nidificato):

this.state = {
   photoControls: {
      open: false,
      id: null,
      thumbnailUrl: null
   }
}

Oppure potrei anche scriverlo in questo modo (proprietà individuali):

this.state = {
   photoControlsOpen: false,
   photoControlsId: null,
   photoControlsThumbnailUrl: null
}

Sebbene io possa raggruppare logicamente le proprietà insieme usando uno stile di stato ad oggetto nidificato, sembra solo dimostrarsi più dettagliato quando si tenta di aggiornare solo una o due di queste proprietà.

Detto ciò, quali sono i vantaggi (se ce ne sono) nell'usare oggetti nidificati nello stato anziché utilizzare le singole proprietà. Capisco che gli oggetti nested potrebbero sentirmi più appropriati, ma non riesco a pensare a nessun vantaggio per loro, qualcuno ha qualche intuizione?

    
posta connected_user 11.12.2017 - 16:57
fonte

1 risposta

0

Lo stato di astrazione per audio / video sarebbe un buon esempio:

video: {
            readyState,
            networkState,
            error: error || networkState === 3,
            // TODO: This is not pretty. Doing device detection to remove
            // spinner on iOS devices for a quick and dirty win. We should see if
            // we can use the same readyState check safely across all browsers.
            loading: readyState < (/iPad|iPhone|iPod/.test(navigator.userAgent) ? 1 : 4),
            percentagePlayed: getPercentagePlayed(restState),
            percentageBuffered: getPercentageBuffered(restState),
            ...restState
        }

Riferimenti

risposta data 16.08.2018 - 16:29
fonte

Leggi altre domande sui tag