Можно ли инициализировать избыточное хранилище один раз и использовать на нескольких страницах? - PullRequest
0 голосов
/ 09 июня 2018

У меня есть магазин редуксов.Допустим, состояние как {names:[], address:[]}.Есть несколько страниц, и все они используют names и address в качестве свойств.Однако мне нужно сделать API вызов на каждой странице, чтобы получить names и address, что увеличивает сетевой трафик.Существует ли обходной путь, который поможет сохранить значения, полученные при первом вызове API, и сохранить их для последующего использования, чтобы полученные значения можно было повторно использовать без повторного вызова API?

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Вы можете экспортировать магазин и импортировать его в любой файл по вашему желанию:

// App.js
export const store = configureStore();

// any_file.js
import { store } from './../App';

...
store.dispatch(...);

store.getState()... ;
0 голосов
/ 09 июня 2018

Вы можете сделать именно то, что вы предлагаете в вопросе.Вам просто нужен какой-то способ узнать, находится ли нужная вам информация в магазине.

Инициализируйте ваш магазин с флагом, установленным в false.

const INITIAL_STATE = {
  names: [],
  address: [],
  upToDate: false
}

Когда вам нужно сделать ваши APIпозвони, проверь флаг.Просто пропустите, если это уже правда.

if (!this.props.exampleReducer.uptoDate) {
  // Make the api call
}

Наконец, вам нужно установить флаг в true, когда вы сделали свой вызов API.

...
case: 'API_CALL_SUCCESS':
  return {
    names: [ ... ],
    address: [ ... ],
    upToDate: true
  }
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...