我的React项目中有一个“电子邮件”按钮,导致所有样式消失。我在外部加载的.css
文件中有一些样式,在JSX中有一些编码。
(它只会在build
之后发生,而在使用run dev
时不会发生。)
有人经历过吗?我如何开始查明原因?
是否可以从外部加载样式,还是必须全部放入样式
const theme = createMuiTheme
?
深入研究后,我发现了这一点:
即使我之前已经定义了JSS head
,JSS仍在insertionPoint
中为CSS添加了更多MUI样式表。但是只有在我单击电子邮件按钮之后。
相关组件的相关部分:
export default class Person extends Component {
constructor(props) {
super(props);
this.state = {
expanded: false,
mailStatus: "idle",
};
}
sendMailStatic = () => { ...
axios.post('/api/sendEmailStatic', {...
}
render() {
return (
<Card ...
<CardHeader ...
action={
<>
<IconButton className='PersonEmailBtn'
onClick={() => { this.sendMailStatic() }}
>
{(() => {
switch (this.state.mailStatus) {
case 'sending':
return <FAIcon className='EmailStatusIcon Sending' icon='sync-alt' spin />;
case 'error':
return <FAIcon className='EmailStatusIcon Error' icon='exclamation-circle' />;
case 'sent':
return <FAIcon className='EmailStatusIcon Sent' icon='check-circle' />;
case 'idle':
return <MailIcon className='EmailStatusIcon Idle' />;
default:
return null;
}
})()}
</IconButton>
</>
}
...
}}
/>
<Collapse ...
</Collapse>
</Card>
)
}
}