首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为react中的视图定义一个可重用的模板

为react中的视图定义一个可重用的模板
EN

Stack Overflow用户
提问于 2019-01-31 13:57:34
回答 1查看 94关注 0票数 1

使用react-admin,我有一个这样的EditView

代码语言:javascript
复制
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}>

是否有方法将其定义为“模板”,然后在所有编辑视图中使用该模板?

模板

代码语言:javascript
复制
<Edit title="Edit: ${currentViewName}" {...props}>
  <SimpleForm>
    ${somePlaceholder}
  </SimpleForm>
</Edit>

视图内容(伪代码)

代码语言:javascript
复制
currentViewName = "Country";
somePlaceholder => (
          <TextInput source="name" label="Name" />
          <TextInput source="iso1" label="ISO-1" />
          <TextInput source="iso2" label="ISO-2" />
);
applyTemplate(currentViewName, somePlaceholder);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-31 16:50:42

您可以将Edit组件包装如下:

代码语言:javascript
复制
const EditTemplate = ({ title, children, ...props }) => (
    <Edit title={`Edit: ${title}`} {...props}>
        <SimpleForm>
            {children}
        </SimpleForm>
    </Edit>
)

并将其用作普通编辑视图:

代码语言:javascript
复制
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>
);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54462180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档