Можно ли использовать response-codemirror2 с formik? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть проект, и я использую 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 ?????

...