2017-10-11 42 views
0

我有一個終極版的結構 我的陣營組件調用sensorChanged(),因爲這反應終極版回合數最佳實踐

this.props.sensorChanged(0.123456789); 

我我的行動有這個功能

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

,並在我的減速器有是這樣的

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

我需要這樣的rounde值:(0.123456789).toFixed(3)

溫度:0.123

什麼是最好的做法是什麼?

  • 在行動回合數
  • 在減速輪數
  • 輪數渲染功能反應成分

編輯

最佳實踐的有關行動創造者的建議,減速器和選擇器https://github.com/reactjs/redux/issues/1171

回答

1

在許多文章中,建議業務邏輯屬於動作創建者。減速器應該是愚蠢和簡單的。在許多個別情況下,它並不重要,但在某些情況下,它可以節省代碼的一致性。

如果您希望在應用程序的某個位置舍入數字和其他原始數字,請在您的容器的connect-mapStateToProps而不是render方法中舍入該數字。如果你在渲染方法中舍入它,當你的組件被重新渲染時,你的編號將被四捨五入,而這不是你想要的。

1

簡而言之,如果減速器總是需要將其收到的數字四捨五入,請將其添加到減速器中。這樣,您可以在其他地方調用Reducer,並從集中的業務邏輯中受益。

如果你認爲減速有時可能被用於0.123以及其他時間0.12345 ...然後一輪你可能只是使用該減速器從以往單一的地方渲染功能

。在那種情況下,我仍然將這個函數添加到reducer中。它很純潔。