>我有一个 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
在许多文章中,建议业务逻辑属于操作创建者。减速器应该是愚蠢而简单的。在许多个别情况下,这并不重要,但在某些情况下,它可以保存代码的一致性。
如果您希望应用程序中的某个地方有舍入数字,而在其他地方是原始数字,请在容器的连接 - mapStateToProps 中将该数字舍入,而不是呈现方法。如果你在渲染方法中舍入它,当你的组件被重新渲染时,你的数字将每十几舍五入一次,我想这不是你想要的。
简而言之,如果该化简器总是需要四舍五入它收到的数字,请将其添加到您的化简器中。这样,您可以在其他地方调用该化简器,并从集中式业务逻辑中受益。
如果您认为化简器有时可能用于 0.123,有时可能用于 0.12345...,则在渲染函数中四舍五入
您可能只是从一个地方使用这个减速器。在这种情况下,我仍然会将此功能添加到化简器中。它是纯粹的。