https://codesandbox.io/s/react-mui-forked-fpt0xl?file=/index.js

我正在try 创建一个简单的可拖动对话框,如上图所示.我遇到的问题是,由于某种原因,DatePicker元素的标签被切断了.我知道我可以自己设计样式来解决这个问题,但我想知道为什么MUI的默认样式会导致这种奇怪的行为.此组件的完整代码包含在下面,演示了上面的问题的工作示例.

    import * as React from 'react';
import Button from '@mui/material/Button';
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import { AdapterLuxon } from '@mui/x-date-pickers/AdapterLuxon';
import { DesktopDatePicker } from '@mui/x-date-pickers';
import { LocalizationProvider } from '@mui/x-date-pickers';
import { FormControl, InputLabel, Input, FormHelperText } from '@mui/material';
import DialogTitle from '@mui/material/DialogTitle';
import Paper, { PaperProps } from '@mui/material/Paper';
import Draggable from 'react-draggable';
import TextField from '@mui/material/TextField';
import { DateTime } from 'luxon';

function PaperComponent(props: PaperProps) {
  return (
    <Draggable
      handle="#draggable-dialog-title"
      cancel={'[class*="MuiDialogContent-root"]'}
    >
      <Paper {...props} />
    </Draggable>
  );
}

export default function DraggableDialog() {
  const [postDate, setPostDate] = React.useState<DateTime | null>(
    DateTime.now()
  );
  return (
    <Dialog
      open={true}
      onClose={() => {}}
      PaperComponent={PaperComponent}
      aria-labelledby="draggable-dialog-title"
    >
      <DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">
        Add Story
      </DialogTitle>
      <DialogContent>
        <FormControl>
          <InputLabel htmlFor="story-title">Title</InputLabel>
          <Input id="story-title" aria-describedby="story-title-text" />
          <FormHelperText id="story-title-text">Enter title</FormHelperText>
        </FormControl>
        <LocalizationProvider dateAdapter={AdapterLuxon}>
          <DesktopDatePicker
            label="Date"
            renderInput={(props) => <TextField {...props} />}
            value={postDate}
            onChange={(newValue: DateTime | null) => {
              setPostDate(newValue);
            }}
          />
        </LocalizationProvider>
      </DialogContent>
      <DialogActions>
        <Button autoFocus onClick={() => {}}>
          Cancel
        </Button>
        <Button onClick={() => {}}>Add Story</Button>
      </DialogActions>
    </Dialog>
  );
}

推荐答案

https://github.com/mui/material-ui/issues/34113

在意识到罪魁祸首代码为大多数容器(如DialogContent)的第一个子级分配了March:0属性后,我向MUI团队提出了这个问题.在本例中,标签的工作原理是将其位置动画化为页边距区域,对于每个其他元素,顶部的页边距为1.0或1.5em,但对于第一个元素,它不是-它是0.Repo经理建议将第一个元素的样式设置为本地sx={{mark-top:1.5}},因为更改默认行为可能会 destruct 许多其他设计,而这并不会太具侵入性.

Reactjs相关问答推荐

是否可能有不同的加载器用于路径有查询参数和没有查询参数,或者在React Router 6中添加它们时有条件地跳过一个加载器?

For循环中的元素在Reaction中丢失挂钩

在React Create App TS项目中安装material UI

无法使用Reaction日期选取器和Next.js设置初始日期

Reaction上下文值无法传递给其他组件

如何使用.Aggregate从多个集合中获取数据,包括使用Mongoose+NextJS的SUM值

在迭代状态时无法读取未定义的属性(读取 map )

React-apexcharts 中的 Y 轴刻度不会动态更新符号

强制 useEffect 仅运行一次

在Vite React上获取Amplify的环境变量

try 从 React JS 构建此教程游戏但无法继续前进

在 React-Select 中显示多值的倒序

将外部 JavaScript 导入 React(通过文件)

如何在同一路由路径上重新渲染组件(链接,V6)reactjs

NextJS htaccess 设置

React Native PermissionsAndroid 不包括 READ_MEDIA_IMAGES.如何解决这个问题?

使用输入类型文本对 useState 和日期做出react

是什么导致了这个令人惊讶的数组导致 React

如何实现两个 SVG 形状相互叠加的 XOR 操作?

React useEffect hooks return () => cleanup() vs return cleanup