2017-10-11 1 views
0

J'ai une structure Redux Mon React composant appelle sensorChanged() que ceréagissent nombre rond Redux meilleures pratiques

this.props.sensorChanged(0.123456789); 

Je mon action, il y a cette fonction

export function sensorChanged(payload) { 
    return { 
    type: SENSOR_CHANGED, 
    payload 
    }; 
} 

et dans mes réducteurs il est-ce

export default function sensor(state = initialState, action) { 
    switch(action.type) { 
    case SENSOR_CHANGED: 
     state = {...state, temperature: action.payload }; 
     return state; 
    default: 
     return state; 
    } 
} 

Je dois valeur rounde comme ceci: (0,123456789) .toFixed (3)

Température: 0,123

Quelle est la meilleure pratique?

  • nombre rond en action
  • nombre rond réducteur
  • nombre rond en rendre fonction réagir le composant

EDIT

Recommandations pour les meilleures pratiques en matière d'action-créateurs, réducteurs et sélecteurs https://github.com/reactjs/redux/issues/1171

Répondre

1

Dans de nombreux articles, il est recommandé que la logique métier appartienne aux créateurs d'actions. Les réducteurs devraient être stupides et simples. Dans de nombreux cas, cela n'a pas d'importance, mais dans certains cas, cela peut rendre votre code plus cohérent.

Si vous prévoyez quelque part dans votre numéro arrondi d'application et dans un autre numéro d'origine, arrondissez ce nombre dans connect-mapStateToProps de votre conteneur à la place de la méthode de rendu. Si vous l'arrondissez dans la méthode render, votre nombre sera arrondi tous les temps quand votre composant sera rerendered ce qui n'est pas ce que vous voulez je suppose.

1

En bref, ajoutez-le à votre réducteur si ce réducteur aura toujours besoin d'arrondir le nombre qu'il reçoit. De cette façon, vous pouvez appeler ce réducteur ailleurs et bénéficier d'une logique métier centralisée.

Si vous pensez que le réducteur peut parfois être utilisé pour 0,123 et d'autres fois 0,12345 ... puis tour dans la fonction render

Vous pourriez utiliser ce réducteur d'un seul endroit jamais. Dans ce cas, j'ajouterais toujours cette fonction au réducteur. C'est pur.