Исходя из мира программирования iOS / swift, я нахожу общий способ доступа к определенным свойствам состояния слишком универсальным, и я хотел бы узнать ваше мнение по этому вопросу
Учитывая следующее состояние Redux (котороеможет быть уже слишком вложенным):
lights: {
room1: {
items: {
1: {
rgb: false,
isOn: false,
value: 50,
color: -1,
title: "Desk light"
},
2: {
rgb: false,
isOn: false,
value: 50,
color: -1,
title: "Groupe 2"
}
}
}
}
и следующий селектор:
export const getLight = (state, roomId, itemId) =>
state.lights[roomId].items[itemId];
, затем в компоненте я сопоставляю stateToProps со следующим:
function mapStateToProps(state, ownProps) {
return {
light: getLight(state, ownProps.roomId, ownProps.itemId)
};
}
это вопрос (наконец).
Я могу получить доступ к различным свойствам света, например, через this.props.light.isOn
;но часть isOn
не обеспечивает какую-либо проверку строки, и в случае, если я изменю состояние, мне придется обновить все компоненты, которые зависят от свойства.
Я думал об использованииЛегкий класс, который я бы использовал следующим образом:
function mapStateToProps(state, ownProps) {
return {
light: Light(getLight(state, ownProps.roomId, ownProps.itemId))
};
}
Это хорошая практика в React / Redux или есть что-то еще, что используется в таком случае?
И последнее,У меня также есть общее действие updateLight
, для которого я предоставляю словарь для ключа, который я хочу обновить.Еще раз, я должен обратить внимание на ключи словаря, чтобы они точно совпадали с ключами состояния.Я не понимаю, как класс Light
мог бы помочь мне ... за исключением того, что я перечислю ключи в другом перечислении или что-то, что затем приведет к большому количеству шаблонов.
Спасибо!