combineReducer 中使用的减速器的声纳代码气味

Rol*_*wal 5 javascript reactjs sonarqube redux

我正在使用 combineReducer 像这样组合减速器和减速器

const todo = (state = {}, action) => {
  switch (action.type) {
    //...

    case 'TOGGLE_TODO':
      if (state.id !== action.id) {
        return state
      }

      return Object.assign({}, state, {
        completed: !state.completed
      })

    default:
      return state
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我像这样定义减速器,我会闻到声纳代码的味道

Function parameters with default values should be last1
Run Code Online (Sandbox Code Playgroud)

但是在这个序列中结合reducer pass参数只是如何解决这个问题?

Sim*_*ner 5

我们在我们的项目中确实遇到了同样的问题,声纳允许您在Administration -> Congifuration -> Analysis Scope.

您会在那里找到一个名为的部分Ignore issues on Multiple Criteria,您可以在那里输入规则和“文件模式”以从该规则中排除文件。

喜欢: 在此处输入图片说明


djf*_*dev 1

来自 Sonarqube 文档:

具有默认值的函数参数应该放在最后:

...但是所有带默认值的函数参数都应该在不带默认值的函数参数之后声明。否则,调用者就无法利用默认值;他们必须重新指定默认值或传递 undefined 才能“获取”非默认参数。

然而,这确实适用于 Redux,因为它第一次调用你的减速器作为undefined第一个参数。如果您想继续使用此模式,则需要禁用该规则或从分析中跳过该行。