Код сонара запах для редуктора, используемого в комбайнеReducer - PullRequest
0 голосов
/ 05 декабря 2018

Я использую комбинированный редуктор для объединения таких редукторов и редукторов, как этот

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
  }
}

Моя проблема в том, что если я определяю такой редуктор, я получаю запах кода сонара

Function parameters with default values should be last1

, но комбинируюПередача аргумента редуктора в этой последовательности только как с этим работать?

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

у нас была такая же проблема в нашем проекте, и сонар позволяет вам определять исключения для правил и файлов в Administration -> Congifuration -> Analysis Scope.

вы найдете там раздел под названием Ignore issues on Multiple Criteria, и там вы можете ввести правило и "шаблон файла", чтобы исключить файлы из этого правила.

, например: enter image description here

0 голосов
/ 15 апреля 2019

Что если вы определите значение по умолчанию для второго аргумента?

const todo = (state = {}, action = null/undefined) => {
0 голосов
/ 05 декабря 2018

Из документов Sonarqube:

Параметры функции со значениями по умолчанию должны быть последними:

... Но все параметры функции со значениями по умолчанию должны быть объявлены после параметров функции беззначения по умолчанию.В противном случае это делает невозможным использование вызывающими абонентами настроек по умолчанию;они должны переопределить значения по умолчанию или передать неопределенное значение, чтобы «добраться до» параметров, отличных от заданных по умолчанию.

Это, однако, работает с Redux, так как он вызывает ваш редуктор впервыес undefined в качестве первого аргумента.Если вы хотите продолжить использовать этот шаблон, вам нужно отключить правило или пропустить эту строку из анализа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...