Reactjs 以编程方式编辑材质UI样式
当我按下搜索按钮时,我试图使输入展开,但在使用Reactjs 以编程方式编辑材质UI样式,reactjs,material-ui,Reactjs,Material Ui,当我按下搜索按钮时,我试图使输入展开,但在使用makeStyles后,我无法更改material ui样式 有什么办法我能做到吗 谢谢 示例代码: const useStyles=makeStyles((主题)=>({ 搜索输入:{ 宽度:0, 填充:0, 边界:“无”, }, })); 函数ExpandableSearchBar(){ const classes=useStyles(); 函数onClick(){ //更改输入类的样式 //类。搜索输入 } 返回( ); } 您可以设置一个状态
makeStyles
后,我无法更改material ui
样式
有什么办法我能做到吗
谢谢
示例代码:
const useStyles=makeStyles((主题)=>({
搜索输入:{
宽度:0,
填充:0,
边界:“无”,
},
}));
函数ExpandableSearchBar(){
const classes=useStyles();
函数onClick(){
//更改输入类的样式
//类。搜索输入
}
返回(
);
}
您可以设置一个状态来切换输入的类名。您的代码应该如下所示-
const useStyles = makeStyles((theme) => ({
searchInput: {
width: 0,
padding: 0,
border: "none",
},
expandedSearchInput: {
width: "5rem" // or, you can set it as per your need
// add other styles of expanded input
}
}));
function ExpandableSearchBar() {
const [isExpanded,setExpand] = useState(false);
const classes = useStyles();
function toggleSearchInput(){
setExpand(val => !val);
}
return (
<div className="component-wrapper">
<IconButton onClick={toggleSearchInput} aria-label="Search">
<SearchIcon />
</IconButton>
<input
className={isExpanded ? classes.expandedSearchInput : classes.searchInput}
type="text" />
</div>
);
}
const useStyles=makeStyles((主题)=>({
搜索输入:{
宽度:0,
填充:0,
边界:“无”,
},
expandedSearchInput:{
宽度:“5rem”//或者,您可以根据需要进行设置
//添加其他样式的扩展输入
}
}));
函数ExpandableSearchBar(){
常量[isExpanded,setExpand]=useState(false);
const classes=useStyles();
函数toggleSearchInput(){
setExpand(val=>!val);
}
返回(
);
}
注意-查看
的类名。当isExpanded
设置为true
时,它将更改为classes.expandedSearchInput
,谢谢。我认为这是一种比更改css属性更好的方法。