Не удается прочитать свойство «сеанс» неопределенного [redux-orm][vite]

#reactjs #vite #redux-orm

Вопрос:

Я использую redux-orm в проекте react, который использует vite. Но я получаю эту ошибку везде, где есть вызов useSelector:

 useSelector.js:38 Uncaught TypeError: Cannot read property 'session' of undefined
    at memoize.js:185
    at index.jsx:68
    at useSelectorWithStoreAndSubscription (useSelector.js:29)
    at useSelector2 (useSelector.js:106)
    at App (index.jsx:68)
    at renderWithHooks (react-dom.development.js:14985)
    at mountIndeterminateComponent (react-dom.development.js:17811)
    at beginWork (react-dom.development.js:19049)
    at HTMLUnknownElement.callCallback2 (react-dom.development.js:3945)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:3994)
 

[memoize.js] из папки модулей узла redux-orm.
memoize.js

index.js СТРОКА:68

 const formDefinitions = useSelector(state => fullFormDefinitionSelector(state)); // ! This is causing an error
 

Селектор определения формы:

 import {createSelector} from 'redux-orm';
import orm from '../schema/models';

// Selector to return fully populated datasources.
export const fullFormDefinitionSelector = createSelector(
    orm,
    session => {
        return session.FormDefinition.all()
            .toModelArray()
            .map(fd => {
                return {
                    ...fd.ref,
                    schema: fd.schema.toRefArray(),
                };
            });
    },
);
 

Я не думаю, что с этим селектором что-то не так, потому что все селекторы выдают одну и ту же ошибку, поэтому некоторые конфигурации могут отсутствовать.

Models.js

 /**
 * Redux-orm Models defined here
 */
import {Model, ORM} from 'redux-orm';

import {Datasource, Field, DatasourceTag} from './Datasource';
import {Query} from './Query';
import {FormDefinition, BaseSchema, GridSchema, KPISchema, Pagination, UserFilter, Sorting, ControlDatasource, DatasourceFilter, GridColumn, KPIColumn, KPIObject} from './FormDefinition';
import {POPULATE_USER_SESSION} from 'containers/App/constants';

export class User extends Model {
    static parse(userData) {
        return this.upsert(userData);
    }

    static reducer(action, User, session) {
        switch (action.type) {
            case POPULATE_USER_SESSION:
                User.parse(action.payload);
                break;
        }
    }

    static get modelName() {
        return 'User';
    }
}

// Create an ORM instance and hook up the Post and Comment models
export const orm = new ORM({
    stateSelector: state => state.orm,
});

orm.register(Datasource, Field, DatasourceTag, User, Query, FormDefinition, BaseSchema, GridSchema, KPISchema, Pagination, UserFilter, Sorting, ControlDatasource, DatasourceFilter, GridColumn, KPIColumn, KPIObject);

export default orm;

 

Комментарии:

1. Не могли бы вы предоставить воспроизводимый образец кода ? (Код и Коробка )