我有一个项目,我使用 Formik 和 react-codemirror2,我想控制 Formik 中的 onChange,但 codemirror2 中的 onChange 没有事件......而且我不知道如何使用......让我更好地解释一下:我有一个formink:
<Formik
enableReinitialize
onSubmit={values =>
{this.submitFormDefinition(values)}}
initialValues={this.state}
>
{({ handleSubmit }) => (
<div>
<Form
onSubmit={handleSubmit}
autoComplete="off"
onChange={event => {
this.handleChange(event)
}}
>
<Field
component={CustomInputComponent}
name="name"
id="id"
multiline
/>
</Form>
</div>
)}
我有我的函数handleChange:
handleChange = event => {console.log('change') ....}
其中 CustomInputComponent 是我的 codemirror2 组件:
const CustomInputComponent = ({ field, form, ...props }) => {
return (
<CodeMirror
id={props.id}
name={props.name}
value={this.state.value}
options={{
mode: 'javascript',
theme: 'default',
lineNumbers: true,
}}
{...props}
onBeforeChange={(editor, data, value) => {
console.log({ value })
this.setState({ jsonSchema: value })
}}
onChange={(editor, data, value) => {
?????????????
}}
/>
)
}
如果我使用另一个组件作为来自 Materia-UI 的 textField 它可以工作,我不需要在我的 CustomInputComponent 上调用 onChange ,即由 formink 直接调用......因为 textField 的 onChange 也有作为参数事件......但是作为您可以在代码中看到 codeMirror 的 onChange 没有事件...
我需要调用我的handleChange而不是codeMirror的onChange ...我试图做这样的事情:
<CodeMirror
onChange=form.handleChange
或使用:
<CodeMirror
onKeyUp={form.handleChange}
或者:
<CodeMirror
onKeyUp={(editor, event) => {
form.handleChange(event)
}}
但没有任何工作我的函数handleChange永远不会调用如何将react-codeMirror2与Formik一起使用?有可能吗?我怎样才能接收到Formink的onChange??????