¿Cómo alineo correctamente el <ChevronRightIcon>
dentro <PrimaryButton>
? Lo quiero después de la etiqueta del botón hacia la derecha.
<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>
es de material-ui y <PrimaryButton>
es de creación propia.
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';
Si desea utilizar un ícono en un botón normal, debe pasar su ícono a la documentación de startIcon
o endIcon
prop (en su caso, endIcon
). Entonces no olvide pasar todos los accesorios pasados de su PrimaryButton
a su componente <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>