В моем приложении я имею много часть государства, которая свидетельствующий только тогда, когда пользователь вошел в системуРеагировать Redux -. Условный селектор
Когда пользователь вошел в систему и перейти непосредственно на страницу, маршрутизатор отобразить страницу но нужно сделать асинхронный вызов, поэтому часть состояния еще не заселена.
Теперь предположим, что я должен показать кнопку на панели навигации, которая должна принять часть состояния, но это состояние не заселено с момента вызова асинхронного вызова.
Более Pratically, у меня есть этот селектор:
export const getSelectedCustomer = state => state.systems.selectedCustomer;
с этим, нет никаких проблем, потому что selectedCustomer
является частью initialState
редуктора
Проблема заключается в этом селекторе:
export const getSelectedCustomerName = state => {
return state.systems.entities[getSelectedCustomer(state)].customer;
}
Часть государства entities
в initialState
является пустым массивом и будет заполняться d при асинхронном вызове.
Таким образом, при запуске приложения и я карта (с подключением - mapStateToProps
) селектор getSelectedCustomerName
я получаю сообщение об ошибке, потому что entities
пуст и уверен, customer
поля пока не существует
простого решения, если принять в введите if-else
, но мне нужно будет сделать это в «каждой» части приложения.
Я прошу, если есть лучшее решение, чтобы избежать этого ...
Наткнулся на это. Наслаждался сопоставлением JavaScript/Ruby. – larz