React Reducer возвращает неопределенное значение - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть несколько свойств уже в mapStateToProps (состояние), но этот конкретный бит возвращает неопределенное значение - disableselectors

return {
    token: state.token,
    url: state.url,
    disableselectors: state.disableselectors
}

, так что вот мой редуктор, я уже возвращаю состояние по умолчанию (так же, как мойдругие редукторы)

const initState = "ENABLED"; 

export default function disableSelectorReducer(state = initState, action){
    switch(action.type){
        case 'SET_DISABLEDSELECTORS':
            return action.disableselectors;

        default:
            return state;
    }
}

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

doUpdate(){
let x = this.props.disableselectors;
}

Компонент, где я устанавливаю состояние и действие

 const disableselectors = this.state.disableselectors;
        disableselectors.disableSelectorProperty = "DISABLED";
        this.setState({disableselectors});
        this.props.setDisableSelectors(this.state.disableselectors.disableSelectorProperty);

Корневой редуктор

const rootReducer = combineReducers({
    status,
    disableSelectors
})

export default rootReducer;

Есть ли проблемы для этого?так как мои другие подпорки и редукторы работают нормально

1 Ответ

0 голосов
/ 20 сентября 2018

При combineReducers имена свойств, которые передаются, становятся свойствами в объединенном состоянии.Потому что ваш combineReducers выглядит следующим образом:

const rootReducer = combineReducers({
  status,
  disableSelectors
})

... ваше отображение состояния на реквизиты

return {
  token: state.token,
  url: state.url,
  disableselectors: state.disableselectors
};

... неверно, так как вы ищетев свойстве disableSelectors, а не в свойстве disableselectors (обратите внимание, что используемая вами заглавная буква не совпадает с заглавной буквой в combineReducers).Либо обновите функцию сопоставления для доступа к disableSelectors, либо обновите combineReducers, чтобы свойство имело disableselectors.

(лично я бы порекомендовал всегда , используя camelCase, чтобы избежать этоговроде вопроса).

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