【问题标题】:react redux round number best practice反应 redux 整数最佳实践
【发布时间】:2018-03-22 21:18:01
【问题描述】:

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

最佳做法是什么?

  • 轮数进行中
  • reducer 中的整数
  • react 组件中渲染函数中的整数

编辑

关于 action-creators、reducers 和 selectors 的最佳实践建议https://github.com/reactjs/redux/issues/1171

【问题讨论】:

    标签: reactjs react-native redux react-redux


    【解决方案1】:

    在许多文章中,都建议业务逻辑属于 action-creators。减速器应该是愚蠢而简单的。在许多个别情况下,这无关紧要,但在某些情况下,它可以节省代码的一致性。

    如果您希望在应用程序的某个地方舍入数字而在其他地方舍入原始数字,请在 connect - mapStateToProps 中舍入该数字,而不是渲染方法。如果您在渲染方法中对其进行四舍五入,那么当您的组件将被重新渲染时,您的数字将被四舍五入,这不是您想要的。

    【讨论】:

      【解决方案2】:

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

      如果您认为 reducer 有时可能用于 0.123 和其他时间 0.12345... 那么在渲染函数中舍入

      你可能只是在一个地方使用这个减速器。在那种情况下,我仍然会将此函数添加到减速器中。它是纯净的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-01
        • 1970-01-01
        • 2021-12-24
        • 2021-08-19
        • 2020-11-07
        • 1970-01-01
        • 2020-05-13
        • 2021-06-21
        相关资源
        最近更新 更多