我有一个Redux结构 我的React组件将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;
}
}
我需要这样的价值:(0.123456789).toFixed(3)
温度:0.123
最佳做法是什么?
修改
有关行动创造者,减少者和选择者的最佳做法的建议https://github.com/reactjs/redux/issues/1171
答案 0 :(得分:1)
简而言之,如果减速器总是需要将它收到的数字四舍五入,请将其添加到减速器中。这样,您可以在其他地方调用该reducer并从集中式业务逻辑中受益。
如果您认为减速器有时可能用于0.123而其他时间用于0.12345 ......那么在渲染函数中进行舍入
你可能只是从一个地方使用这个减速机。在这种情况下,我仍然将此功能添加到reducer。它纯洁。
答案 1 :(得分:1)
在许多文章中,建议业务逻辑属于动作创建者。减速器应该是愚蠢而简单的。在许多个别情况下,它并不重要,但在某些情况下,它可以节省代码的一致性。
如果您希望应用程序中的某个位置包括圆形数字和其他原始数字,请在connect - mapStateToProps而不是render方法中将该数字舍入。如果你在渲染方法中对它进行舍入,那么当你的组件被重新渲染时,你的数字将会每隔一段时间舍入,这不是你想要的。