【发布时间】:2020-07-09 07:16:40
【问题描述】:
我正在尝试从内联样式切换到 css-in-jsx。我发现了 styled-components,并希望如果我使用完全相同的样式功能,我会在两种情况下得到相同的结果。然而,情况似乎并非如此。
例如,
<Container component="main" maxWidth="xs">
<CssBaseline />
<div style={{
display: 'flex',
flexDirection: 'column',
alignItems: 'center'
}}>
{/* <Wrapper> */}
<Avatar>
<LockOutlinedIcon />
</Avatar>
<Typography component="h1" variant="h5">
Sign in
</Typography>
..................
{/* </Wrapper> */}
</div>
</Container>
);
}
当我使用它时,一切正常。 但是,现在我在另一个文件中做了这个:
export const Wrapper = styled.div`
display: flex;
flex-direction: 'column';
align-items: center;
`;
当我注释掉我的旧 div 并使用 Wrapper 而不是那个时,我得到了这个:
为什么会这样?如果样式命令相同,为什么我得不到相同的结果?这是否意味着,如果我要迁移到 styled-components,我将不得不修复所有组件?
另外,我该如何解决这种特殊情况? :D
【问题讨论】:
-
你能检查包装这个组件的 wapper 命令吗?父样式可以改变子样式行为。喜欢
display: flex到display: block -
如果我改变它,头像会再次向上移动但位于网格的左侧@xdeepakv
-
请添加沙箱来重现。调试的代码非常有限。
-
我在沙箱中不断收到错误,但这有帮助吗? @xdeepakv 我或多或少地使用了材质 ui 的主题。 github.com/mui-org/material-ui/tree/master/docs/src/pages/…
标签: javascript css reactjs typescript styled-components