У меня есть проект, и я использую Formik и реагировать-codemirror2, я хочу контролировать onChange в Formik, но onChange в codemirror2 не имеет события ... и я не знаю, как использовать ... позвольте мнеобъясните лучше: у меня есть 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) => {
?????????????
}}
/>
)
}
Если я использую другой компонент как textField из Materia-UI, он работает, мне не нужно вызывать мой CustomInputComponent onChange, то есть прямой вызов formink ... потому что также onChange textField имеетПараметр event ... но как вы можете видеть в коде, onChange codeMirror не имеет события ...
Мне нужно вызывать свой handleChange, а не onChange codeMirror ... Я пытался сделатьчто-то в этом роде:
<CodeMirror
onChange=form.handleChange
или используйте:
<CodeMirror
onKeyUp={form.handleChange}
или:
<CodeMirror
onKeyUp={(editor, event) => {
form.handleChange(event)
}}
но ничего не работает, моя функция handleChange никогда не вызывается Как использовать реагировать-codeMirror2с Формиком?возможно?как я могу принять изменение Formink ?????