defaultState в изменениях редуктора - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть состояние по умолчанию ниже,

const defaultState = {
  targetFilters: [
    {
      key:'Web version',
      type:'RANGE',
      uBound:'',
      lBound:'',
      tKey:'appBar.shopFilters.webVersion.name',
      tInfo:'appBar.shopFilters.webVersion.info',
    },
    {
      key:'Job status',
      type:'SELECT&RANGE',
      selections: ['Success','Unreachable'],
      uBound:'',
      lBound:'',
      sIdx:0,
      tSelections: ['dashboard.view.job.success.name','dashboard.view.job.unreachable.name'],
      colors:['#388e3c','#FF9F00'],
      tKey:'appBar.shopFilters.jobStatus.name',
      tInfo:'appBar.shopFilters.jobStatus.info',
   },
];

Но я заметил, что состояние по умолчанию изменилось.Я знал об этом, потому что распечатал в функции обновления и обнаружил, что цвета

: ['# 388e3c', '# FF9F00']

часто меняютсябыть

цвета: ['# 388e3c']

export function updateShopFiltersState(state=defaultState,action){console.log(defaultState);
switch(action.type) {
...
    default:
        return state;
}

}

Я действительно смущен и не знаю почему.Любые предложения приветствуются

1 Ответ

0 голосов
/ 16 ноября 2018

Большое спасибо. Возможная основная причина может заключаться в том, что когда я использую «цвета», я использую «ссылку на цвета», как что-то ниже,

const {shopFiltersState} =store.getState();
let cur=shopFiltersState.targetFilters.find((f)=>{return f.key==='Job status'}),
    chartConfig={ 
                          colors: cur?(cur.colors):[], //directly use the colors reference; this line may be problematic
                         },

К сожалению, последующее изменение ссылки может привести к прямой записи в массив, поэтому я изменяю запись на

colors: cur?copy(cur.colors):[]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...