javascript - 样式化的组件生成的类名用 React-Bootstrap 弄乱了我的布局
问题描述
我正在使用 react-bootstrap 和样式化的组件。到目前为止,一切都很完美,但现在有一个div
不时className
变化的 a。这div
有一个高度,450px
它在我的主布局之上,限制了其他所有东西的高度。
我在组件上使用的语法类似于:
import styled from 'styled-components'
const Styles = styled.div`
.input-group-prepend {
padding-top:11px;
padding-right:10px;
}
.login-input {
background-color: #6C63FF;
border-top: 0;
border-left: 0;
border-right: 0;
border-radius: 0;
padding: 0;
width: 240px;
color:white;
font-size:0.80rem;
}
export const Input = (props) => {
const { type, placeholder, } = props
return (
<Styles>
<InputGroup className="my-4">
<InputGroup.Prepend>
{props.children}
</InputGroup.Prepend>
<FormControl
className='login-input'
placeholder={placeholder}
aria-label={placeholder}
/>
</InputGroup>
</Styles>
)
}
我的应用组件
import React, { Component } from 'react'
import Routes from './Routes'
import { ThemeProvider } from 'styled-components'
import { theme } from './theme'
class App extends Component {
render() {
return (
<ThemeProvider theme={theme}>
<Routes />
</ThemeProvider>
)
}
}
export default App;
到目前为止我已经尝试过:
- 删除了 ThemeProvider
- 将路由直接放入 index.js(我可以这样做还是不好的做法?)
- 通过 NPM 重新安装包
- 对组件也进行重构
有什么我想念的吗?如果是这样,那是什么?在此先感谢您的帮助。
解决方案
通过阅读此答案:当我们使用样式化组件时会显示随机类?
看起来您<ThemeProvider theme={theme}>
实际上没有收到正确的“主题”。
看起来像上面的堆栈答案中所解释的那样,您正在将哈希接收到元素上,但实际上您并没有从主题中接收到您的样式。
所以我认为这就是你出错的地方。检查您的主题组件。
推荐阅读
- google-app-engine - App Engine 任务队列处理程序引发 302 错误
- python - 如何在cefpython中检索JS窗口对象
- c# - Unity IoC:创建没有构造函数依赖注入的接口实例
- swift - iOS:通知徽章编号不会重置
- powerapps - 您可以使用 PowerApps 创建浏览器应用程序吗?
- c++ - How to recursively find the index of a max element in C++?
- c# - 如何在 Html.ListBoxFor 中设置单个(或所有,每个)选项/项目的样式?
- python - Python方法:在一个单元测试中执行多个IP?最佳做法?
- python - 设置 `aiohttp.ClientSession` 默认参数
- node.js - 使用角度和节点上传后获取图像