вызов onBlur дает TypeError: (неструктурированный параметр) не определен - PullRequest
0 голосов
/ 21 февраля 2020

Со следующим кодом onChange работает нормально, печатая что-то на консоль, как и ожидалось. Но использование onBlur дает ошибку: TypeError: (параметр destructured) не определен

Почему это так?

Также странно, что если я удаляю событие из функций и оставляю определение только как : const handleValueChange = ({value}) => {

, затем onChange печатает значение undefined

, пока оно не выдает ошибку. При наличии события оно печатается как ожидаемое значение test [добавлено с нажатой клавишей]

Но во всех случаях onBlur выдает ошибку о неструктурированном параметре, неопределенную

Код:

import React from 'react';
import { Form } from 'semantic-ui-react';

const Test = () => {

    const handleValueChange = (event, {value}) => {
        event.persist();

        console.log('value', value);
    };

    const handleBlur = async (event, {value}) => {
        event.persist();      

        console.log('value', value);
    };


    return (
        <Form name='testForm'>
            <Form.Field>
                <Form.Input
                    placeholder='Name'
                    label='Name'
                    name='name'
                    key='key'
                    value='test'
                    onChange={handleValueChange}
                    onBlur={handleBlur}
                />
            </Form.Field>
        </Form>
    );
}

export default Test;

1 Ответ

1 голос
/ 21 февраля 2020

onBlur предоставляет только один аргумент, event. Таким образом, вы захотите деструктурировать это, если вы хотите, чтобы значение как

const handleBlur = async (event) => {
  const value = event.target.value;
  // OR
  // const { target: { value } } = event;
  event.persist();      

  console.log('value', value);
};
...