Material ui 在rest上单击admin上的Edit按钮可获得一个对话框

Material ui 在rest上单击admin上的Edit按钮可获得一个对话框,material-ui,admin-on-rest,Material Ui,Admin On Rest,我正在使用rest框架上的admin开发一个应用程序。为了编辑资源上的条目,我们提供了XXXEdit、XXXShow、XXXCreate道具。我的要求是,当我在列表视图中单击任何条目上的编辑按钮时,我应该得到一个对话框,其中包含XXXEdit中的参数,而不是转到新页面。我尝试使用XXXEdit组件中的对话框来实现这一点 <Edit title={<RoleTitle />} {...props}> <SimpleForm> <

我正在使用rest框架上的admin开发一个应用程序。为了编辑
资源上的条目
,我们提供了XXXEdit、XXXShow、XXXCreate道具。我的要求是,当我在列表视图中单击任何条目上的编辑按钮时,我应该得到一个对话框,其中包含XXXEdit中的参数,而不是转到新页面。我尝试使用XXXEdit组件中的对话框来实现这一点

 <Edit title={<RoleTitle />} {...props}>
      <SimpleForm>
        <Dialog
          title="Dialog With Actions"
          actions={actions}
          modal={false}
          open={true}
        >
          <TextInput source="id" />
          <TextInput source="name" validate={required} />
          .
          .//some more fields
        </Dialog>
      </SimpleForm>
    </Edit>

.
.//还有一些字段
我遇到了一些错误,例如没有在redux表单中调用TextInput组件 如果使用DisabledInput,则会出现错误
无法读取未定义的值


我该如何处理这个问题?

我认为您不能使用Simpleform来处理这个问题。您需要使用Redux表单创建自定义表单。查看记录最终答案的底部答案

这可能对你有帮助


而不是创建一个页面。您正在创建一个连接到Redux状态并显示为对话框的组件

我试图用HOC和react路由器解决这个问题

我使用AOR按钮创建了一个按钮,并提供了一个containerElement

containerElement={
          <Link
            key={record.id}
            to={{
              ...{
                pathname: `${basePath}/${encodeURIComponent(record.id)}`
              },
              ...{ state: { modal: true } }
            }}
          />
        }
最后是一个临时的

handleClose = () => {
  this.props.history.goBack();
};
render() {
  const actions = [
    <FlatButton label="Cancel" primary={true} onClick={this.handleClose} />
  ];
  return (
    <Dialog>
      <WrappedComponent/>
    </Dialog>
  )
handleClose = () => {
  this.props.history.goBack();
};
render() {
  const actions = [
    <FlatButton label="Cancel" primary={true} onClick={this.handleClose} />
  ];
  return (
    <Dialog>
      <WrappedComponent/>
    </Dialog>
  )
edit={DialogUserEdit}