如何解决如何使用Material-ui为输入元素赋予类似版式的样式?
我希望自己的Typography字段可以编辑,因此我将其转换为输入。
现在,我希望此输入具有相同的样式。
怎么做?
我尝试将生成的CSS复制到输入中,但这很乏味,而且似乎并不完美。
下面是一个代码沙箱,用于说明:https://codesandbox.io/s/flamboyant-stonebraker-le1eq?file=/index.js
解决方法
我为您找到了解决方法,但是请记住,这不是理想的选择,因为您更改了当前的Typography组件,因此您必须在chrome devtools上再次找到其类,并且带有diaplay'none'的字体是必要的材料来呈现样式...
import React from "react";
import ReactDOM from "react-dom";
import { Button,InputBase,TextField,Typography } from "@material-ui/core";
function App() {
const [isEditing,setIsEditing] = React.useState(false);
const [value,setValue] = React.useState("Edit me");
const toggleIsEditing = () => setIsEditing((b) => !b);
if (isEditing) {
return (
<div style={{ display: "flex",alignItems: "center" }}>
<input
className="MuiTypography-root MuiTypography-h4 MuiTypography-displayInline"
value={value}
onChange={(e) => setValue(e.target.value)}
/>
<Typography style={{ display: "none" }} />
<Button size="small" onClick={toggleIsEditing}>
Done
</Button>
</div>
);
}
return (
<div style={{ display: "flex",alignItems: "center" }}>
<Typography variant="h4" display="inline">
{value}
</Typography>
<Button size="small" onClick={toggleIsEditing}>
Edit
</Button>
</div>
);
}
ReactDOM.render(<App />,document.querySelector("#app"));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。