javascript - 带有样式化组件的 Redux 表单
问题描述
我正在尝试创建一个可重用的组件,其中我<Field />
返回了 redux-form,并且在这个组件中,我使用 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;
它简单地呈现输入但不实现样式......
我将不胜感激任何帮助。谢谢
解决方案
当styled
在不是 DOM 元素的组件上使用 on 时,它所做的就是className
向组件添加一个 prop。组件需要访问它className
并将其传递给 DOM 元素。
您实际上在这里将其传递了两次,因为最终className
应该是在componentType
而不是Field
本身上。
const ReduxFormField: React.FC<SimpleFieldProps & {className?: string}> = (
{ componentType, className }
) => {
return <Field component={componentType} props={{className}} name="email" />;
};
推荐阅读
- python - Django:__init__.py 包中断迁移
- javascript - 我正在尝试使用 nodejs 在 sh 中执行一个文件,但控制台告诉我找不到该文件
- wordpress - 重定向到 Wordpress 中最新的自定义帖子类型
- c++ - 为什么我不能在while循环中创建线程?
- python - Visual Studio Code 覆盖集成终端中的 python 解释器
- java - 如何将自定义/动态请求映射到控制器(Spring)?
- jquery - Laravel:在逻辑编程方面需要帮助(电子邮件发送)
- reflection - Haxe 反射方法访问静态字段?
- autodesk-forge - 伪造查看器 - 如何在相机更改事件时将恢复的标记与其上写的标签文本链接
- google-apps-script - Google Apps 脚本:将范围复制到新范围使用连接公式