Сопоставление / ядро ​​Действия должны быть простыми объектами.Использовать пользовательское промежуточное ПО для асинхронных действий - PullRequest
0 голосов
/ 22 января 2019

Я использую @ rematch / core и у меня проблема. На локальном, при разработке ошибки такой вещи нет, но, как я ее вылил, я получаю ошибку и, следовательно, не могу отладить. может кто сталкивался с этим?

const model = {
  state: initialState,

  reducers: {
    startLoading(state: IDataState, event: string | number) {
      return { ...state, loaders: { ...state.loaders, [event]: true } };
    },

    stopLoading(state: IDataState, event: string | number) {
      return { ...state, loaders: { ...state.loaders, [event]: false } };
    },

    saveData(state: IDataState, data: any[]) {
      return { ...state, data };
    },
  },

  effects: {
    async getData() {
      startLoading('getData');
      try {
        const { data } = await request({
          url: `URL`,
          method: 'GET',
        });
        dispatch({
          type: 'data/saveData',
          payload: data,
        });
      } catch (error) {
        console.log(error.message);
      } finally {
        stopLoading('getData');
      }
    },
  },
};

export default model;

store.ts

import { init } from '@rematch/core';

// Models
import data from './models/data.model';

const store = init({
  models: {
    data,
  },
});

export default store;

index.ts

import HomePage from './HomePage';
import { connect } from 'react-redux';

interface ISubscriptions {
  games: { [key: string]: any };
}

export default connect(
  ({ data }: ISubscriptions) => ({
    data,
  }),
  null,
)(HomePage);

и используйте это

this.props.dispatch({ type: 'data/getData' });

везде вызывается объектом вида {type: 'xxx', payload: data}

--- ОБНОВЛЕНИЕ ---

Если удалить этот код (веб-пакет), проблема исчезнет.

optimization: {
    minimizer: [
      new UglifyJsPlugin({
        uglifyOptions: {
          output: {
            comments: false,
            beautify: false,
          },
        },
      }),
    ],
  },
...