javascript - Antd 对其他包的 getFieldDecorator
问题描述
我想将react-mapbox-autocomplete与 Antd 的getFieldDecorator
.
但是似乎Antd的getFieldDecorator只支持自己的组件。
有没有办法将它用于其他包,比如react-map-autocomplete
?
解决方案
是的,可以getFieldDecorator
使用每个不是组件的自定义antd
组件。
如文档中所述,您需要使用从getFieldDecorator
.
被 getFieldDecorator 包裹后,表单控件中会添加 value(或 valuePropName 定义的其他属性) onChange(或 trigger 定义的其他属性) props。
由于这是一个非常常见的问题,这里有一些生产代码示例:
这里我们使用一个自定义组件SliderNumber
。getFieldDecorator
<Form.Item label={TOLERANCE.label}>
{getFieldDecorator(TOLERANCE.field)(<SliderNumber />)}
</Form.Item>
在其实现中,我们使用注入的onChange
和value
from getFieldDecorator
。
const SliderNumber = forwardRef(({ onChange, value: initial }, ref) => {
const [value, setValue] = useState(initial);
useEffect(() => {
onChange(value);
}, [onChange, value]);
return (
<FlexBox>
<FlexBox.Item span={SPAN}>
<Slider value={value} onChange={setValue} />
</FlexBox.Item>
<FlexBox.Item span={SPAN_REST}>
<InputNumber value={value} onChange={setValue} />
</FlexBox.Item>
</FlexBox>
);
});
ref
请注意,有时在不实现上述类似的情况下使用起来会更容易onChange
。
推荐阅读
- excel - 从 Excel 构建 MS 项目跳过空行
- python-3.x - 如何从访问请求 URL 时出现未经授权错误的 API 读取数据
- bash - 将相对地址作为输入以在 bash 脚本中读取
- sql - 在 HAVING CLAUSE 中产生与 AVG(field) 相关的 NULL 值
- ruby-on-rails - PaperClip 未在本地主机上运行 - Ruby on Rails
- sql-server - 计算发货时间超过 X 天的订单百分比的更好方法?
- unit-testing - Dart Future catchError 未在单元测试中调用
- python - Databricks pyspark,使用 header='false' 时 Dataframe.count() 和 Display(Dataframe) 的结果差异
- sql - 每个组的案例陈述
- firebase - Firebase auth v2 -> v3 迁移代码崩溃