Admin-on-REST:嵌套的Create-Route无法正常工作?

时间:2017-07-10 14:58:02

标签: javascript reactjs admin-on-rest

我目前的设置如下:

httpClient.js:

link

restClient.js

import { fetchUtils } from 'admin-on-rest'

const HttpClient = (url, options = {}) => {
    if (!options.headers) {
        options.headers = new Headers({ Accept: 'application/json' })
    }

    // ...handle authorization and set some header

    return fetchUtils.fetchJson(url, options)
}

export default HttpClient

...所以我在那个部门非常基础。

我现在拥有的是一些 路线 ,如下所示:

import { jsonServerRestClient } from 'admin-on-rest'
import HttpClient from './httpClient.js'

export default jsonServerRestClient('', HttpClient)

......这一切都很标准,并且工作正常。

我的问题 现在是我有另一条路由<Route exact path="/stream" render={(routeProps) => <StreamList hasCreate resource="stream" {...routeProps} />} />, <Route exact path="/stream/create" render={(routeProps) => <StreamCreate resource="stream" {...routeProps} />} />, <Route exact path="/stream/:id" render={(routeProps) => <StreamEdit hasDelete resource="stream" {...routeProps} />} />, <Route exact path="/stream/:id/delete" render={(routeProps) => <Delete resource="stream" {...routeProps} />} />, <Route exact path="/stream/query/:id" component={StreamQueryEdit} />, ,我希望在其中有一条资源的嵌套路由。路由如下所示:

/config/what

<Route exact path="/config/how/antonym" render={(routeProps) => <AntonymList hasCreate resource="antonym" {...routeProps} />} /> <Route exact path="/config/how/antonym/create" render={(routeProps) => <AntonymCreate resource="antonym" {...routeProps} />} /> <Route exact path="/config/how/antonym/:id" render={(routeProps) => <AntonymEdit resource="antonym" {...routeProps} />} /> <Route exact path="/config/how/antonym/:id/delete" render={(routeProps) => <Delete resource="antonym" {...routeProps} />} /> 内,这些嵌套路由的呈现方式如下:

/config/how/

列表,编辑和删除路由所有工作都像预期的那样。唯一的问题是,一旦我导航到Create-Route,我就会从服务器收到500错误。

事实证明,在进行一些调查之后,框架不会将此路由识别为创建路由,而是将其视为if (this.props.children) { return this.props.children } 请求id为&#34;创建&#34;。

以下是我追踪问题的方法: AOR debug

这表明由于某种原因,admin-on-rest将此请求视为GET请求。这也会导致代码通过GET(而不是&#34;创建&#34;?)我真的不确定原因。

我试图找到设置Edit.js参数的位置,以查看可能导致此行为的原因......但到目前为止还没有运气。

在这些情况下,列表和编辑路线都能正常工作,这一点特别奇怪。它只是创造路线...

1 个答案:

答案 0 :(得分:0)

确保您的AntonymCreate组件具有如下形式:

export const AntonymCreate = (props) => (
    <Create {...props} title="Create">
    ...
    </Create>
);

这可能是它不起作用的原因。