проблема константного определения внутри оператора switch - PullRequest
0 голосов
/ 08 мая 2018

У меня есть следующий код в моем редукторе. В обоих случаях findFile () возвращает результат, однако, только в первом случае (setImageRotation) будет установлен «origFile». Изменение имени второго вхождения «origFile» позволит установить его. Мне интересно, почему это так, поскольку const имеет область действия уровня блока.

    function handler(stateArg, action) {
        const state = stateArg || {};
        let nextState;

        switch (action.type) {
            case actions.types.setImageRotation: {
                const origFile = findFile(action.fileUid, state.files);
                const newfile = Object.assign({}, origFile, { rotation: action.rotation });
                nextState = updateStateFile(state, newfile);
                break;
            }

            case actions.types.setImageRegionOfInterest: {
                const origFile = findFile(action.fileUid, state.files);
                const newfile = Object.assign({}, origFile, { roi: action.roi });
                nextState = updateStateFile(state, newfile);
                break;
            }
        }
        return nextState || state;
    }

Примечания:

  • origFile не определен нигде в моем решении.
  • нет ошибок консоли

Прозрачный код:

        case actions.types.setImageRegionOfInterest:{
            var origFile = findFile(action.fileUid, state.files);
            var newfile = (0, _assign2.default)({}, origFile, { roi: action.roi });
            nextState = updateStateFile(state, newfile);
            break;
        }

        case actions.types.setImageRotation:{
            var _origFile = findFile(action.fileUid, state.files);
            var _newfile = (0, _assign2.default)({}, _origFile, { rotation: action.rotation });
            nextState = updateStateFile(state, _newfile);
            break;
        }

1 Ответ

0 голосов
/ 09 мая 2018

Как заявили в обсуждении люди, этот код работает. Я столкнулся с ошибкой в ​​отладчике и сопоставлении исходного кода Google Chromes. Когда я отключил сопоставление исходного кода и отладил перенесенный код, я получил правильное значение для «origfile».

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