TabbedShowLayout / TabbedForm中的条件Tab / FormTab渲染

时间:2017-11-14 14:03:20

标签: admin-on-rest

我希望仅在记录具有特定属性时才在Tab内显示TabbedShowLayout。我尝试创建一个自定义组件,如下所示:

const EventsTab = ({...props, record}) => {
  return record && record.hasEvents &&
  <Tab label="Tab2">
    test
  </Tab>
}

然后将其添加到Show布局中:

<Show {...props}>
  <TabbedShowLayout>
    <Tab label="Tab1">
      <MetricsComp {...props} />
    </Tab>
    <EventsTab {...props}/>
  </TabbedShowLayout>
</Show>

但是我收到以下错误:uncaught at finalize Invariant Violation: EventsTab(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.

Admin-on-rest允许条件呈现组件(如How to access record's internals in Show/Edit/Create),但不允许Tab。有没有解决方法?

2 个答案:

答案 0 :(得分:2)

我们必须做类似的事情 - 很遗憾,我们无法访问>base64 <my_image> | jq -R '{image: .}' | http https://<api_gw_url>/dev/upload 'Authorization:Bearer <my_auth_token>' 中的记录,但我们已经在Show。因此,我们决定使用TabbedShowLayout的render()创建自定义TabbbedShowLayout,如下所示:

TabbedShowLayout

答案 1 :(得分:1)

我不确定,我可能会冒昧,但你组件EventsTab基本上会返回一个布尔值,而不是一个有效的反应组件。以下是您要找的内容吗?

const EventsTab = ({...props, record}) => {
  return record ? record.hasEvents ?
  (<Tab label="Tab2">
    test
  </Tab>): null: null
}