Redux 类名在<;字段>;以重复形式
我已经创建了一个redux表单,我想向每个字段添加类名,以便使用css对其进行自定义。 每个字段的代码为:Redux 类名在<;字段>;以重复形式,redux,redux-form,classname,Redux,Redux Form,Classname,我已经创建了一个redux表单,我想向每个字段添加类名,以便使用css对其进行自定义。 每个字段的代码为: <Form onSubmit={handleSubmit(requestAccountsFilter)}> <FormGroup row> <Field id="symbol" name="symbol" type="text"
<Form onSubmit={handleSubmit(requestAccountsFilter)}>
<FormGroup row>
<Field
id="symbol"
name="symbol"
type="text"
component={inputField}
placeholder="Enter Product Here"
/>
<Field id="side" name="side" component={inputField} type="select">
<option value={null}>Any</option>
<option value="Buy">Buy</option>
<option value="Sell">Sell</option>
</Field>
<Field id="status" name="status" component={inputField} type="select">
<option value={null}>Any</option>
<option value="Working">Working</option>
<option value="Completed">Completed</option>
</Field>
<Button name="submit-btn" className="filter-submit-btn" color="danger" type="submit">
Submit
</Button>
</FormGroup>
</Form>
任何
购买
卖
任何
工作
完整的
提交
我添加了一个className标记,但是我看到既没有显示我添加的占位符,也没有显示类名。如何自定义每个字段
<Field
type="text"
className="myClass"
component={InputField}
placeholder="Type here..."
/>
或者更好的方法,如果有太多的道具,你可以使用
export const InputField=(field)=>(
{field.meta.com&&field.meta.error&&{field.meta.error}
)
{…field}
将提取您在字段中传递的所有道具
您可以看看这个官方的redux表单示例:了解更多信息
希望有帮助:)
您可以使用对象分解方法来设置类名
我通过说组件={InputField}
了解到您正在使用自定义渲染器,但是对于其他来到这里的人(因为我在文档中找不到):如果您使用的是内置渲染器之一,如组件=“input”
或组件=“select”
,您只需添加className
,渲染器就会应用它,例如:
<Field name="foo" component="select" className="form-control">
</Field>
这完全取决于inputField
函数的外观。您能给我们看一下吗?您传递给字段的所有道具都将在您的inputField
组件中提供。因此,在您的inputField
组件中,您只需要解构像
这样的道具。这样,传递给Field
的所有道具将在inputField
组件中可用。`我的inputField组件如下:导出默认字段=>({Field.children}{Field.meta.toucted&&Field.meta.error&&{Field.meta.error});而不是将代码粘贴到注释中。请编辑您的问题。最后一个InputField组件向我显示了一个错误,无法读取props meta和inputDid第一个工作?第二种我不太确定,因为我自己还没试过。我需要调查一下。第一个也不行。只有当我直接赋值时,它才起作用。更具体地说,如果我分配etc value=“fsfsdfs”,它将工作,但如果我分配value={value},并且在我的组件中,我设置value=“fsdfsdfsd”,它将不工作,我还做了一些其他更改。你能试试最新的答案吗?不,它不起作用。返回的结果也给我带来了一个错误,我非常喜欢这种方法,不需要在组件上添加类名,这是一种不好的做法。
export const InputField = (field) => (
<div>
<input {...field.input} {...field} />
{field.meta.touched && field.meta.error && <span className="error">{field.meta.error}</span>}
</div>
)
<Field name="foo" component="select" className="form-control">
</Field>