Я только несколько дней (переходя из Ember), поэтому, пожалуйста, простите мое невежество.
У меня есть массив объектов (profileaccounts) в моем магазине.У меня есть много различных компонентов, которые подключены к магазину и имеют код, подобный приведенному ниже, иногда пользователь - это пользователь, вошедший в систему, иногда это пользователь, который передается в компонент (когда кто-то просматривает чужой профиль)
componentDidMount() {
let user = this.props.user;
let account = this.props.profiles.find(function (prof) { return prof.profile.id === user.id });
if (account == null) {
this.props.dispatch(userActions.getProfile(user.id));
}
}
Это полностью работает, но я не хочу, чтобы этот код повторялся снова и снова.У меня такое чувство, что я всегда должен вызывать .getProfile(user.id)
, и его работа состоит в том, чтобы определить, существуют ли данные в локальном кэше (хранилище) или их нужно добавить.Если это необходимо добавить, добавьте его, а затем верните.В качестве альтернативы, возможно, пользовательский сервис (который представляет API и вызывается действиями для заполнения профилей) должен выглядеть локально, прежде чем вызовет API.Несмотря на это, я не знаю, как (или если я должен) получить доступ к хранилищу из действий или службы, только из подключенного компонента.
Я не встречал такого сценария ни в одном из руководств, которые я читал о редуксе / реакции, поэтому, если кто-нибудь сможет добавить ресурс туда, куда я должен смотреть, я буду признателен.Если я совершенно ошибаюсь в этом, я тоже был бы счастлив узнать об этом.