Как я могу перезагрузить магазин после создания ресурса во время выполнения? - PullRequest
1 голос
/ 26 марта 2019

Я получаю ресурсы во время выполнения через вызов API.У меня есть create представление, которое создает ресурс.Как перезагрузить react-admin redux store, чтобы боковая панель обновлялась с новым ресурсом?

Я подумал о том, чтобы последовать примеру здесь

const saveWithNote = (values, basePath, redirectTo) => {
    console.log('creating new dataset...')
    crudCreate('datasets', values, basePath, redirectTo);
}

Моя мысль былачтобы запустить какое-то действие, которое может вызвать изменение состояния магазина и перезагрузить страницу, но я получаю сообщение об ошибке

TypeError: Cannot read property 'type' of undefined
(anonymous function)
/form/formMiddleware.js:21
  18 | var previousLocation;
  19 | return function (next) {
  20 |   return function (action) {
> 21 |     if (action.type !== LOCATION_CHANGE || action.payload.state && action.payload.state.skipFormReset) {
     | ^  22 |       return next(action);
  23 |     } // history allows one to redirect to the same location which can happen
  24 |     // when using a special menu for a create page for instance. In this case,

Вот моя панель инструментов

const DatasetCreateToolbar = props => {

    return (
        <Toolbar {...props} >
            <SaveWithNoteButton
            label=" Save "
            redirect="list"
            submitOnEnter={false}
            variant="flat"
        />
        </Toolbar>
    )
};

Остальная часть кода выглядит какэто из примера ссылка

Есть ли лучший способ вызвать перезагрузку магазина, чтобы моя боковая панель показывала новые созданные ресурсы?

1 Ответ

0 голосов
/ 26 марта 2019

Я понял, почему я получаю ошибку.

const saveWithNote = (values, basePath, redirectTo) => {
    console.log('creating new dataset...')
    crudCreate('datasets', values, basePath, redirectTo);
}

Я вызывал функцию crudCreate вместо ее возврата.

Код должен был быть

const saveWithNote = (values, basePath, redirectTo) => {
    console.log('creating new dataset...')
    return crudCreate('datasets', values, basePath, redirectTo);
}

Я до сих пор не уверен, что делать, чтобы обновить мой магазин и перезагрузить боковую панель

...