![](/img/trans.png)
[英]How to use styled components with Field from redux form and custom component?
[英]Redux Form With Styled Component
我正在尝试创建一个可重用的组件,其中我返回了 redux-form <Field />
并且在这个组件中我用 styled-component 对其进行了样式设置。
我面临的挑战是没有一种风格反映
这是我的simple-field-input.styles.ts
import React from 'react';
import { Field } from 'redux-form';
import styled from 'styled-components';
import { SimpleFieldProps } from './simple-field-input.type';
const ReduxFormField: React.FC<SimpleFieldProps> = ({ componentType }) => {
return <Field component={componentType} name="email" />;
};
export const Container = styled(ReduxFormField)`
outline: none;
border: none;
background-color: orangered;
color: yellow;
`;
这是我的simple-field-input.component.tsx
import React from 'react';
import * as Style from '../simple-field-input/simple-field-input.styles';
import { SimpleFieldProps } from './simple-field-input.type';
const FieldInput: React.FC<SimpleFieldProps> = ({ componentType }) => {
return <Style.Container componentType={componentType}></Style.Container>;
};
export default FieldInput;
它简单地呈现输入但不实现样式......
我将不胜感激任何帮助。 谢谢
当在不是 DOM 元素的组件上使用styled
时,它所做的是向组件添加一个className
属性。 组件需要访问该className
并将其传递给 DOM 元素。
您实际上在这里传递了两次,因为className
应该以componentType
而不是Field
本身结束。
const ReduxFormField: React.FC<SimpleFieldProps & {className?: string}> = (
{ componentType, className }
) => {
return <Field component={componentType} props={{className}} name="email" />;
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.