🍙

MUI v5のstyled()の位置を間違ってた話

2023/05/24に公開

スマホでテストしててなんか入力欄にフォーカスしたときに挙動がおかしい(入力欄をタップしてフォーカスしたときにフォーカスが解除されて、モーダルがすぐに閉じる)なと思っていたらstyledの位置がおかしかったみたいです。
当たり前かもしれないですが、半日潰れました。多分なんかの拍子に再レンダリングされて、モーダルが閉じちゃってたと思います。

↓は例です。ダメなやつ。

Test.jsx
import { styled } from '@mui/material/styles';
import Box from '@mui/material/Box';
const Test = (props) => {
const TestBox = styled(Box)(({ theme }) => ({
  background: '#dce5ec',
  borderRadius: '8px',
}));
	return (
		<TestBox>
		aaa
		</TestBox>
	)
}
export default Test;

↓こっちが正解

Test.jsx
import { styled } from '@mui/material/styles';
import Box from '@mui/material/Box';
+ const TestBox = styled(Box)(({ theme }) => ({
+   background: '#dce5ec',
+   borderRadius: '8px',
+ }));
const Test = (props) => {
- const TestBox = styled(Box)(({ theme }) => ({
-   background: '#dce5ec',
-   borderRadius: '8px',
- }));
	return (
		<TestBox>
		aaa
		</TestBox>
	)
}
export default Test;

Discussion