答案 0 :(得分:2)
好的,这就是我暂时解决这个问题的方法。我在触发componentDidMount
生命周期方法后才显示Material-UI组件。我正在使用组件状态。以下是它的工作原理:
class AccountNav extends Component {
constructor(props){
super(props);
this.state = {
load: false
}
}
componentDidMount(){
this.setState({ load: true });
}
render(){
const { activeItem } = this.props;
const { load } = this.state;
if(!load) return <div></div>;
else{
return(
<List style={{width: 250}}>
<ListItem button divider="true" style={activeItem == 'profile' ? styles.listHoverStyle : {}}>
<Link prefetch as="/account/profile" href="/account?page_slug=profile">
<ListItemText primary='Your Profile' />
</Link>
</ListItem>
<ListItem button style={activeItem == 'edit' ? styles.listHoverStyle : {}}>
<Link prefetch as="/account/edit" href="/account?page_slug=edit">
<ListItemText primary="Edit Profile" />
</Link>
</ListItem>
</List>
);
}
}
}
答案 1 :(得分:0)
// 1 . Warning: prop classname did not match. Material ui with React Next.js
// 2 . Use your customization css here
const useStyles = makeStyles((theme) => ({
root: {
flexGrow: 1,
},
title: {
flexGrow: 1,
},
my_examle_classssss: {
with: "100%"
}
}));
// 3 . Here my Component
const My_Example_Function = () => {
const classes = useStyles();
return (
<div className={classes.root}>
<Container>
<Examle_Component> {/* !!! Examle_Component --> MuiExamle_Component*/}
</Examle_Component>
</Container>
</div>
);
}
export default My_Example_Function
// 4. Add name parameter to the makeStyles function
const useStyles = makeStyles((theme) => ({
root: {
flexGrow: 1,
},
title: {
flexGrow: 1,
},
my_examle_classssss: {
with: "100%"
},
}), { name: "MuiExamle_ComponentiAppBar" });
{/* this is the parameter you need to add { name: "MuiExamle_ComponentiAppBar" }
The problem will probably be resolved
if the name parameter matches the first className in the Warning: you recive..
EXAMPLE :
Warning: Prop `className` did not match.
Server: "MuiSvgIcon-root makeStyles-root-98"
Client: "MuiSvgIcon-root makeStyles-root-1"
The name parameter will be like this { name: "MuiSvgIcon" }
*/ }