反应redux圆数最佳实践

时间:2017-10-11 09:04:36

标签: reactjs react-native redux react-redux

我有一个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

2 个答案:

答案 0 :(得分:1)

简而言之,如果减速器总是需要将它收到的数字四舍五入,请将其添加到减速器中。这样,您可以在其他地方调用该reducer并从集中式业务逻辑中受益。

如果您认为减速器有时可能用于0.123而其他时间用于0.12345 ......那么在渲染函数中进行舍入

你可能只是从一个地方使用这个减速机。在这种情况下,我仍然将此功能添加到reducer。它纯洁。

答案 1 :(得分:1)

在许多文章中,建议业务逻辑属于动作创建者。减速器应该是愚蠢而简单的。在许多个别情况下,它并不重要,但在某些情况下,它可以节省代码的一致性。

如果您希望应用程序中的某个位置包括圆形数字和其他原始数字,请在connect - mapStateToProps而不是render方法中将该数字舍入。如果你在渲染方法中对它进行舍入,那么当你的组件被重新渲染时,你的数字将会每隔一段时间舍入,这不是你想要的。