> Toggle 1차 에러 발생 in Wrapper
TS2769 : No overload matches this call,
import styled from 'styled-components';
interface ThemeToggle {
themeMode: string;
toggleTheme: () => void;
}
const Wrapper = styled.button<ThemeToggle>`
background: ${({ theme }) => theme.mode.mainBackground};
border: 1px solid ${({ theme }) => theme.mode.border};
box-shadow: 0 1px 3px ${({ theme }) => theme.mode.divider};
border-radius: 30px;
cursor: pointer;
display: flex;
font-size: 0.5rem;
justify-content: space-between;
align-items: center;
margin: 0 auto;
overflow: hidden;
padding: 0.5rem;
position: fixed;
z-index: 1;
width: 4rem;
height: 2rem;
bottom: 2rem;
right: 1rem;
span{
color: ${({theme}) => theme.mode.slider};
&:first-child{
transform: ${({themeMode}) =>
themeMode === "light" ? "translateY(0)" : "translateY(2rem)"};
transition: background 0.25s ease 2s;
}
&:nth-child(2){
transform: ${({themeMode}) =>
themeMode === "dark" ? "translateY(0)" : "translateyY(-2rem"};
transition: background 0.25s ease 2s;
}
}
`;
const Toggle = ({themeMode, toggleTheme}: ThemeToggle) => {
return (
<Wrapper onClick={toggleTheme} themeMode={themeMode}>
</Wrapper>
)
}
export default Toggle;
- Wrapper의 타입이 없어서 그랬던듯..?
interface themeWrapper로 새롭게 타입 새엇ㅇ해서 지정해주니까 에러 해결
> 해결 코드
import styled from 'styled-components';
interface ThemeToggle {
themeMode: string;
toggleTheme: () => void;
}
interface ThemeWrapper {
themeMode:string;
}
const Wrapper = styled.button<ThemeWrapper>`
background: ${({ theme }) => theme.mode.mainBackground};
border: 1px solid ${({ theme }) => theme.mode.border};
box-shadow: 0 1px 3px ${({ theme }) => theme.mode.divider};
border-radius: 30px;
cursor: pointer;
display: flex;
font-size: 0.5rem;
justify-content: space-between;
align-items: center;
margin: 0 auto;
overflow: hidden;
padding: 0.5rem;
position: fixed;
z-index: 1;
width: 4rem;
height: 2rem;
bottom: 2rem;
right: 1rem;
span{
color: ${({theme}) => theme.mode.slider};
&:first-child{
transform: ${({themeMode}) =>
themeMode === "light" ? "translateY(0)" : "translateY(2rem)"};
transition: background 0.25s ease 2s;
}
&:nth-child(2){
transform: ${({themeMode}) =>
themeMode === "dark" ? "translateY(0)" : "translateyY(-2rem"};
transition: background 0.25s ease 2s;
}
}
`;
const Toggle = ({themeMode, toggleTheme}: ThemeToggle) => {
return (
<Wrapper onClick={toggleTheme} themeMode={themeMode}>
</Wrapper>
)
}
export default Toggle;
'Programming > 이것 저것 조각보' 카테고리의 다른 글
웹사이트 성능 측정할 때 어떤 부분을 측정하는걸까? ( with 측정 가능 사이트 ) (0) | 2023.09.24 |
---|---|
-작성중 - 내용 무 /JWT 랑 Token이랑 그리고 Bearer 에 대해서 알고 있어? (0) | 2023.07.14 |
[CSS]word-break: break-all / min-wieth: 지정 (0) | 2023.02.17 |
줍줍 지식 : 프론트 엔드로 신입 들어가기 위해서는 어디 수준까지 준비해야 할까. (0) | 2022.12.25 |
[JavaScript & JQuery ] 공부할 때 빠른 사이트 겟또 요약 글 (0) | 2022.12.04 |