material-ui - 导入自定义 svg 图标并显示它的最佳方式
问题描述
我必须导入一个自定义 svg 图标并将其用作我的应用程序中的按钮
我一直在做的是,
import high from '../img/high.svg';
const styles = theme => ({
icon: {
color: red[800],
height: '15px',
width: '15px',
cursor: 'pointer'
}
});
<IconButton><CardMedia image={high} className={classes.icon}/></IconButton>
但这不像一个按钮,我没有得到 onClick 的手形符号。将图标显示为按钮的最佳方式是什么?
解决方案
做一个样式为 sa span 的样式化组件
interface IconProps {
color: 'blue' | 'red' | 'green';
size: string;
margin: string;
}
export const Icon = styled.span<IconProps>`
color: ${props => props.color || '#000000'};
font-size: ${props => props.size || ''};
margin: ${props => props.margin || null};
cursor: pointer;
`;
你不必像我一样使用道具,但这对我来说很好。在强制对文本和 SVG 等内容进行样式设置时,跨度非常有用。
例子
<Icon size="150px" color="green">
<i className="fab fa-fort-awesome-alt"/>
</Icon>
注意:我确实使用打字稿。如果您不使用道具,则可能不需要使用界面。我只是把它留在那里,作为我所做的例子的一部分。
推荐阅读
- reactjs - 在聊天项目中动态更新 React 组件的问题
- r - 在 Windows 上检测中文字符时出现 str_detect() 错误
- javascript - 通过事件监听器将事件和元素传递给处理程序
- zapier - 尝试使用 Integromat 进行 Podio API 调用,返回 403 禁止 - InvalidAccessTokenError
- spring-webflux - 在生产者 Spring Reactive Kafka 中使用多个主题配置
- asp.net - 在特定实体上使用身份框架
- android - 创建启动系统应用程序“文件”的意图
- android - 家长控制应用程序如何查看社交媒体消息(例如 Messenger)
- laravel - 如何使用livewire alpinejs Tom select动态添加多选?
- weblogic - 无法在 Weblogic 服务器上启动已停止的应用程序