Метод setFieldsValue не может использоваться, когда форма antD4 повторно инкапсулирована.
когда вы создаете компонент и помещаете в него ant Form
, вы не должны ожидать, что он будет вести себя точно так же, как Ant Form
(поскольку вы расширяете React Component
, а не Ant Form
). вам нужно setFieldsValue
, поэтому вы можете реализовать его следующим образом:
import React, { PureComponent } from "react";
import { Form as Component } from "antd";
class Form extends PureComponent {
formRef = React.createRef();
render() {
return <Component {...this.props} ref={this.formRef} />;
}
setFieldsValue(v) {
this.formRef.current.setFieldsValue(v);
}
getForm() {
return this.formRef.current;
}
}
Form.Item = Component.Item;
export default Form;
Таким образом, вы можете использовать его с:
this.formRef.current.setFieldsValue({
mobile: "110"
});
Или:
this.formRef.current.getForm().setFieldsValue({
mobile: "110"
});
Демо на codeandbox