FireMonkey92 Ответов: 0

Как правильно хранить тип функции в магазине, я полагаю?


const COLUMNS = [
  {
    title: 'GROUP ID',
    dataIndex: 'groupId',
    key: 'groupId',
    rowKey: 'groupId',
    default: true,
    sorter: (a, b) => a.groupId - b.groupId,
  },
  {
    title: 'ADMIN ID',
    dataIndex: 'adminId',
    key: 'adminId',
  },
  {
    title: 'ADMIN NAME',
    dataIndex: 'adminName',
    key: 'adminName',
    sorter: (a, b) => { return a.adminName.localeCompare(b.adminName) },
  },
  {
    title: 'GROUP TYPE',
    dataIndex: 'type',
    key: 'type',
    default: true,
    sorter: (a, b) => a.type - b.type,
    render: (rowData) => {
      return (<div>{rowData === 2 ? 'Resident' : 'Physician'}</div>)
    }
  },
  {
    title: 'DIRECTOR NAME',
    dataIndex: 'directorName',
    key: 'directorName',
  },
  {
    title: 'FAX',
    dataIndex: 'fax',
    key: 'fax',
  },
  {
    title: 'EMAIL',
    dataIndex: 'email',
    key: 'email',
    default: true
  }
]

Я пытаюсь сохранить этот массив в магазине redux,
Он становится сохраненным, но с ошибкой на консоли, как,

Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'BroadcastChannel': function sorter(a, b) {
    return a.groupId - b.groupId;
  } could not be cloned.


Он хранится в redux, но без ключей "сортировщик" и "рендер".

Что я уже пробовал:

то, что я думал, это преобразовать ключ "рендер" и "сортировщик" в строку и использовать
var fn = window[function_as_string];
я могу оценить.
но проблема в том, что я использую ES6 и не хочу давать никакого имени функции. Пожалуйста, предложите лучший подход для этого..

Спасибо!!

0 Ответов