reactjs - 在 Material UI 中的文本元素和文本输入之间无缝切换
问题描述
我有一张带有图像和几个孩子的Material UI Card 。<Typography>
我需要允许用户编辑图像 URL 和子项中的文本。在编辑过程中不改变卡片的整体大小或其任何子项的大小的最佳方法是什么?有我可以使用的现有示例吗?
解决方案
考虑使用contentEditable
<Typography contentEditable={true} suppressContentEditableWarning={true}>
const useStyles = makeStyles({
root: {
maxWidth: 300,
margin: "auto",
marginBottom: "10px"
},
media: {
height: 60
},
});
function App() {
return (
<SampleCard
title="Click me to edit"
description="description"
image="https://via.placeholder.com/300x60"
/>
)
}
function SampleCard({title, description, image}){
const classes = useStyles();
return(
<Card classes={{root: classes.root}}>
<CardMedia
classes={{media: classes.media}}
component="img"
image={image}
title={title}
/>
<CardContent>
<Typography contentEditable={true} suppressContentEditableWarning={true} gutterBottom variant="h5" component="h2">
{title}
</Typography>
<Typography variant="body2" color="textSecondary" component="p">
{description}
</Typography>
</CardContent>
<CardActions>
<Button size="small" color="primary">
Share
</Button>
<Button size="small" color="primary">
Learn More
</Button>
</CardActions>
</Card>
);
}
ReactDOM.render(<App/>, document.getElementById("root"));
<body>
<div id="root"></div>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script src="https://unpkg.com/@material-ui/core@latest/umd/material-ui.development.js"></script>
<script type="text/babel">
const { Button, Card, CardMedia, CardContent, Typography, CardActions, makeStyles } = MaterialUI;
</script>
</body>
推荐阅读
- javascript - 如何在节点红色中制作更高级的图表?如何制作具有两个或多个 y 轴的 Node-red 实时图表?
- iframe - 如何使用 Elementor 在 iframe 代码中动态放置高级自定义字段 URL?
- python - 有没有办法改变 mne.io.raw 第一个样本信息?
- sas - SAS - Proc 导出文件名中的宏变量
- android - 从视频中提取单帧的最快方法是什么
- python - 使用 pip 安装 Matplotlib 时遇到问题(python 3.10 windows 11)
- shiny - R Shiny:在 ObserveEvent 中更新代理表列标题
- javascript - 使用多个三元运算符渲染 React 组件
- javascript - React 功能组件 - 是否可以将道具传递给 { children }?
- sql - 从sql查询中获取最大值和最大日期