Этот вопрос был как-то связан с react-admin
, пока я не понял, что проблема в том, что компонент, который я расширял, был на самом деле экспортирован.
Я использую TabbedForm
и ответ * администратора-администратора FormTab
, чтобы показать много полей в моем администраторе, и мне нужно настроить макет вкладки.
В основном я хочу расширить FormTab
с помощью пользовательского макета.
Но я недобираемся куда угодно.
Вот проблема:
Если я использую пользовательский компонент для своих вкладок, такой как
import React from 'react';
import {
FormTab,
FormInput,
} from 'react-admin'
const hiddenStyle = { display: 'none' };
export class CustomFormTab extends FormTab {
renderContent = ({ children, hidden, ...inputProps }) => (
<span style={hidden ? hiddenStyle : null}>
{React.Children.map(
children,
child => React.cloneElement(child, {
...inputProps
})
)}
</span>
);
}
export const CustomFormTabPart = ({ children, className, ...inputProps }) => {
return (
<div className={className}>
{React.Children.map(
children,
input =>
input && (
<FormInput
{...inputProps}
input={input}
/>
)
)}
</div>
)
}
Это должно заставить меня работать, но я расширяюсь FormTab
, который не экспортируется как простой компонент.
// in react-admin/packages/ra-ui-materialui/src/form/FormTab.js
...
FormTab.displayName = 'FormTab';
export default translate(FormTab);
translate
- это HOC ...
Я не знаю, как это расширить.Это вообще возможно?
На самом деле код в FormTab
не очень большой, и копирование это решение.Я просто ненавижу это нравится.