Добавьте функции в очередь для выполнения позже.Redux - PullRequest
0 голосов
/ 26 мая 2018

друзей.
Я застрял с проблемой.У меня есть эта строка кода

var methodToQueue = {
  afterOffline: ƒ afterOffline(data)
  dependsOnNetworkStatus: true
  offline: ƒ offline(data)
  online: ƒ online()
}

Это объект, и он будет динамически изменен, если какое-либо избыточное действие будет выполняться в автономном режиме.И я хочу сохранить его в моем магазине редуксов -
store.dispatch({ type: 'ADD_TO_ACTION_QUEUE', payload: methodToQueue.afterOffline });
Редуктор, так как это выглядит так -

const initialState = {
  functionsQueue: []
};

const reducer = (state = initialState, action) => {
  switch (action.type) {
	case 'ADD_TO_ACTION_QUEUE':
	  return Object.assign({}, state, {
		functionsQueue: state.functionsQueue.concat([action.payload])
	  });
	default:
	  return state;
	}
}

Но он не хочет сохранять методы, чтобы сохранить его, сохраните null.Даже если я пытаюсь использовать JSON.stringify() и хранить весь объект, он сохраняет только свойство без какой-либо логики.{ type: 'ADD_TO_ACTION_QUEUE', payload: JSON.stringify(methodToQueue) } - сохранит только dependsOnNetworkStatus: true.
Есть ли у вас какие-либо идеи о том, как сохранить какую-то функцию в хранилище избыточности для после выполнения?Это также может быть localStorage.Заранее благодарю!

1 Ответ

0 голосов
/ 26 мая 2018

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

Если вы хотите сохранить функции, работайте с их именем, начиная с имя функции - это строка .Затем в другом слое (промежуточном программном обеспечении) поймайте это имя и вызовите связанную функцию с помощью отражения.

...