Причина в том, что наследование свойств не является "нативным", вы должны сделать это вручную. response-admin делает это в каждом компоненте.
Когда вы вставляете элемент div
в форму или макет реагирующего администратора, вы нарушаете это наследование между Tab
и TextField
. div
получает props
от родителя Tab
, но не пересылает их на TextField
.
Одним из решений является создание специальной обертки. В вашем случае:
<ShowController {...props}>
{controllerProps =>
<ShowView {...props} {...controllerProps}>
<TabbedShowLayout {...controllerProps}>
<Tab icon={<AssignIcon />}>
<CustomDiv>
<TextField source="id" />
</CusomDiv>
</Tab>
</TabbedShowLayout>
</ShowView>
}
</ShowController>
С
const CustomDiv = ({children, ...props}) => (
<div>
{
React.Children.map(children, child => React.cloneElement(child, {...props, ...child.props}))
}
</div>
);