Определение многоразового шаблона для представлений в реагирующем администраторе - PullRequest
0 голосов
/ 31 января 2019

Использование react-admin У меня есть EditView, подобный этому:

export const LanguageEdit = props => (
  <Edit title="Edit: Language" {...props}>
    <SimpleForm>
      <TextInput source="name" label="Name" />
      <TextInput source="iso1" label="ISO-1" />
      <TextInput source="iso2" label="ISO-2" />
    </SimpleForm>
  </Edit>
);

Мое приложение будет иметь несколько из этих видов редактирования, каждое с различным содержанием в элементе <SimpleForm>.Однако заголовок будет незначительно отличаться в разных видах.

<Edit title="Edit: Language" {...props}>
<Edit title="Edit: City" {...props}>
<Edit title="Edit: Country" {...props}>

Есть ли способ определить это как "шаблон""который будет использоваться во всех видах редактирования?

Шаблон

<Edit title="Edit: ${currentViewName}" {...props}>
  <SimpleForm>
    ${somePlaceholder}
  </SimpleForm>
</Edit>

Просмотр содержимого (псевдокод)

currentViewName = "Country";
somePlaceholder => (
          <TextInput source="name" label="Name" />
          <TextInput source="iso1" label="ISO-1" />
          <TextInput source="iso2" label="ISO-2" />
);
applyTemplate(currentViewName, somePlaceholder);

1 Ответ

0 голосов
/ 31 января 2019

Вы можете обернуть компонент редактирования следующим образом:

const EditTemplate = ({ title, children, ...props }) => (
    <Edit title={`Edit: ${title}`} {...props}>
        <SimpleForm>
            {children}
        </SimpleForm>
    </Edit>
)

И использовать его как обычный вид редактирования:

export const LanguageEdit = props => (
  <EditTemplate title="Language" {...props}>
      <TextInput source="name" label="Name" />
      <TextInput source="iso1" label="ISO-1" />
      <TextInput source="iso2" label="ISO-2" />
  </EditTemplate>
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...