javascript - 如何正确对齐按钮内的material-ui图标?
问题描述
如何正确对齐<ChevronRightIcon>
内部<PrimaryButton>
。我想要它在向右的按钮标签之后。
<PrimaryButton style={{
paddingRight: '26px'
}}
label="Open Button"
aria-controls="simple-menu"
aria-haspopup="true"
onClick={this.handleOpenMenu.bind(this)
}
className={classes.progress}
color="#fff"
>
<ChevronRightIcon></ChevronRightIcon>
</PrimaryButton>
<ChevronRightIcon>
来自material-ui,<PrimaryButton>
是自创的。
import React from 'react';
import RaisedButton from 'material-ui/RaisedButton';
export default function PrimaryButton(props) {
const style = {
height: 36,
boxShadow: 'none',
...props.style,
};
return (
<RaisedButton {...props} primary style={style} name="primary-button">
{props.children}
</RaisedButton>
)
}
PrimaryButton.muiName = 'RaisedButton';
解决方案
如果您想在常规按钮中使用图标,您应该将您的图标传递给startIcon
或endIcon
支持(在您的情况下endIcon
)文档。然后不要忘记将您传递的所有道具传递PrimaryButton
给您的<Button/>
组件。
<PrimaryButton
endIcon={<ChevronRightIcon />}
style={{
paddingRight: '26px',
}}
label="Open Button"
aria-controls="simple-menu"
aria-haspopup="true"
onClick={this.handleOpenMenu.bind(this)}
className={classes.progress}
color="#fff"
/>
// import ChevronRightIcon from '@material-ui/icons/ChevronRight';
const icon = (name) => (props) => <MaterialUI.Icon {...props} children={name} />;
const ChevronRightIcon = icon("chevron_right");
function Demo() {
return (
<PrimaryButton
endIcon={<ChevronRightIcon />}
label="Open Button"
variant="contained"
// ...
/>
);
}
function PrimaryButton({label, ...props}) {
return (
<MaterialUI.Button
{...props}
color="primary"
children={label}
/>
);
}
ReactDOM.render(<Demo />, document.querySelector("#demo"));
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<script crossorigin src="https://unpkg.com/@material-ui/core@4/umd/material-ui.development.js"></script>
<div id="demo"></div>
推荐阅读
- typescript - 从firebase云可调用函数中的所有子节点获取firebase数据一次/快照
- spring-boot - Spring Boot 应用程序未重定向到托管在不同服务器上的 Keycloak
- android - 如何在没有 USB 电缆的情况下通过 wifi 网络连接 ADB?
- .net-core - 无需电子邮件确认的 Asp.Net Core WebAPI 身份令牌登录
- python - python、pandas中是否有类似的公式,如IFERROR、IF、MATCH、SEARCH、INDEX?
- git - Git:为什么,当我切换分支时,我的一些文件保留在原位而其他文件没有?
- c# - 如何在 NodeJS 中使用 SQL 输出参数和响应应用程序
- c++ - g++ -g 选项仅在makefile中不起作用
- java - java中创建id的算法
- scala - 嵌套的 Future.sequence 顺序执行包含的 Futures