PrimeReact 和样式组件

His*_*His 5 css reactjs styled-components primereact

我似乎无法使用 styled-component 设置 PrimeReact 组件的样式。

鉴于以下代码来呈现 InputText,我的目的是改变它的宽度。但它不起作用。

import styled from "styled-components";
import {InputText} from 'primereact/components/inputtext/InputText';

class Component extends React.Component {
    render() {
        return (
            <InputText/>
        )
}

const ComponentView = styled(Component)`
    .ui-inputtext {
        width: 1000px;
    }
`;
Run Code Online (Sandbox Code Playgroud)

Die*_*Haz 4

styled-components生成className应传递给组件的 。

import styled from "styled-components";
import {InputText} from 'primereact/components/inputtext/InputText';

class Component extends React.Component {
    render() {
        return (
            <InputText className={this.props.className} /> <---- here
        )
}

const ComponentView = styled(Component)`
    .ui-inputtext {
        width: 1000px;
    }
`;
Run Code Online (Sandbox Code Playgroud)

如果InputText不接受className,你可以简单地用另一个组件包装它:

import styled from "styled-components";
import {InputText} from 'primereact/components/inputtext/InputText';

class Component extends React.Component {
    render() {
        return (
            <div className={this.props.className}> <---- here
                <InputText />
            </div>
        )
}

const ComponentView = styled(Component)`
    .ui-inputtext {
        width: 1000px;
    }
`;
Run Code Online (Sandbox Code Playgroud)