2015-12-13 18 views
7

Właśnie zakończyłem okablowanie aplikacji redux i jest fantastyczna do tej pory. Ponieważ jednak stan jest przechowywany w gigantycznym sklepie, nie masz żadnych modeli, z których uzyskujesz dostęp do swoich danych.Najlepsza praktyka do wielokrotnego użytku obliczenia danych w sklepie redux

Załóżmy, że mam klasę modelu, która przechowuje pewne informacje o użytkowniku. Zwykle dodawałem funkcję do klasy o nazwie display_name, która inteligentnie łączy różne części ich nazwy. Dzięki temu moje różne poglądy mogłyby po prostu zadzwonić pod numer display_name zamiast do nich, aby dowiedzieć się, jak sami je obliczyć.

Redux jawnie twierdzi, że nie przechowuje wartości obliczonych w stanie, więc pozostawia je do zdefiniowania w komponentach. Nie może to być jednak słuszne, ponieważ wtedy zduplikowałbyś ten kod w każdym komponencie, który tego potrzebuje.

Gdzie jest właściwe miejsce do przechowywania tej logiki?

Odpowiedz

7

Najprostszym sposobem jest tworzenie funkcji użytkowych w celu obliczenia te dane i umieścić je w osobny moduł, który może być wykorzystany przez mapStateToProps funkcji wielu składników. A Przykład super prosta:

import { displayName } from "./utils"; 

function mapStateToProps(state) { 
    return { 
    displayName: displayName(state.user) 
    }; 
} 

function MyComponent(props) { 
    return <div>Name: {props.displayName}</div>; 
} 

export default connect(mapStateToProps)(MyComponent); 
Powiązane problemy