在运行时创建资源后如何重新加载商店?

时间:2019-03-25 23:10:58

标签: javascript reactjs redux-form react-admin

我正在通过api调用在运行时获取资源。我有一个create视图,可以创建资源。如何重新加载react-admin redux store,以便使用新资源更新边栏?

我想到了以下示例here

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>
    )
};

其余代码与示例link

中的代码相同

是否有更好的方法来触发商店重新加载以使边栏显示创建的新资源?

1 个答案:

答案 0 :(得分:0)

我弄清楚了为什么会出错。

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);
}

我仍然不确定如何刷新商店并重新加载侧边栏