【发布时间】:2020-08-12 02:56:39
【问题描述】:
我正在尝试根据它们是否“活动”以及用户是否将鼠标悬停在它们上来设置一些按钮的样式。
它在某种程度上有效,但是,它的行为方式我并不完全理解。
如何根据组件的状态以及用户行为将条件样式应用于组件?
我在这个SANDBOX中有一个例子
还有这里复制的主JS文件:
demo.js
import React from "react";
import PropTypes from "prop-types";
//import { makeStyles } from "@material-ui/core/styles";
import { withStyles } from "@material-ui/styles";
import { Button } from "@material-ui/core";
const useStyles = theme => ({
root: {
backgroundColor: theme.palette.secondary.paper,
width: 500
},
pageButton: {
backgroundColor: "black",
color: "blue",
width: 30,
minWidth: 20,
"&:hover": {
backgroundColor: "green"
}
},
normalButton: {
width: 30,
minWidth: 20,
backgroundColour: "red"
}
});
class Feature extends React.Component {
constructor(props) {
super(props);
this.state = { currentPage: 0 };
}
handleClick(page) {
this.setState({ currentPage: page });
}
fetchPageNumbers() {
return [1, 2, 3];
}
render() {
const classes = this.props.classes;
return (
<div className={classes.root}>
{this.fetchPageNumbers().map((page, index) => {
return (
<div>
<Button
onClick={() => this.handleClick(page)}
key={page}
className={
this.state.currentPage === page
? classes.pageButton
: classes.normalbutton
}
>
{page}
</Button>
<Button
onClick={() => {}}
key={page * 20}
className={classes.normalButton}
>
{page * 20}
</Button>
</div>
);
})}
</div>
);
}
}
Feature.propTypes = {
classes: PropTypes.object.isRequired
};
export default withStyles(useStyles)(Feature);
有两行。第二行可以很好地选择样式。 仅当单击按钮时,第一行才会坚持。我希望能够根据当前按钮是否处于活动状态(即 state == buttonNumber)以及用户是否将鼠标悬停在任何按钮上来设置状态。
【问题讨论】:
-
请查看material-ui.com/api/button 页面以了解如何定位
-
那个帖子解决了你的问题吗?请提供一些反馈将不胜感激。
标签: javascript css reactjs material-ui