Форум программистов, компьютерный форум, киберфорум
JavaScript: ReactJS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
11 / 11 / 2
Регистрация: 21.05.2014
Сообщений: 31
1

MobX. Можно ли импортировать store в модель другого store, если нужно использовать данные обоих stores?

27.01.2020, 17:33. Показов 1346. Ответов 0

Author24 — интернет-сервис помощи студентам
Mobx. Подскажите, пожалуйста, как правильно описать структуру кода, когда нужно чтобы в модели одного store использовались данные другого store.

Код
/stores
    RetailersStore.ts
    RewardsStore.ts
/models
    RetailerStore.ts
    RewardModel.ts
Сейчас у меня calc() выполняется в компонентах в методе render(). Но это создает дублирование кода, поэтому я хочу оптимизировать этот процесс, но не знаю как правильно.

я думаю, что можно создать геттер @get cashback в функции-конструкторе "RetailerModel", но у меня функция calc() использует данные с обоих stores. И проблема в том, что RewardStore.reward может меняться, поэтому RetailerModel должен следить за изменениями.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { calc } from '../constants';
 
export class RetailerModel {
  @observable public rate: number;
 
  constructor(rate: number) {
    this.rate = rate;
  }
 
  // Мне кажется, это был бы идеальный вариант, но насколько так вообще разумно 
  // делать? Придется дополнительно дописывать @observer к RetailerModel, так как RewardStore.rewards может меняться. 
  // Будет ли это эффективно?
  @computed get cashback(): number {
    return calc(this.rate, RewardStore.reward); 
  }
}
 
[...]
Как в целом решаются подобные проблемы, чтобы код оставался структурированным и эффективно выполнялся?

В крайнем случае я могу объединить оба stores в один единственный. Но это не лучший вариант?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2020, 17:33
Ответы с готовыми решениями:

Strict Standards: Declaration of VirtueMartModelMedia::store() should be compatible with VmModel::store($data)
Strict Standards: Declaration of VirtueMartModelMedia::store() should be compatible with...

Java App Mac App Store/ Windows Store
Всем привет! У меня есть вопрос на который я не в состоянии сам найти ответ. У меня есть веб...

Не догружаются данные в store
не догружаются данные в store Добрый день.. Все перепробовал да ничего не получается.. в общем у...

Как подключить X509Certificate с Certificate Store, если он защищен паролем?
Такой вопрос вот. Как подключить X509Certificate с Certificate Store, если он защищен паролем? К...

0
27.01.2020, 17:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2020, 17:33
Помогаю со студенческими работами здесь

Существует ли эмулятор iOS на котором можно устанавливать приложения из App Store?
Здравствуйте! Существует ли эмулятор при помощи которого можно было бы скачивать приложение из App...

Что нужно для того чтобы собрать приложение для iOS и выложить в App Store?
Всем привет! Делаю приложение на PhoneGap. И столкнулся с проблемой. Установил виртуальную...

Как использовать append, если нужно из таблицы tblnew перевести данные в tblold?
Вот так я удаляю - Connection2.Execute ('delete from tblnew where dtoc(zaiav,1) = '' &...

Нужно, импортировать из файла в массив 16 значений, таких файлов много, вот нужно импортировать и отсортировать по возрастанию
что то у меня не получаеться Program abli; var a: file of integer; i: byte; mas: array of...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru