ESLint выдает ошибку «отсутствует в проверке реквизита» при использовании деструктуризации в параметре функции - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь описать столбцы таблицы и использовать деструктуризацию параметров функции в функции "render" столбца:

const columns = [
{
        field: 'description',
        // The parameter is row data object
        render: ({ id, description }) => (
            <Tooltip title={ id }>
                <div>
                    { description }
                </div>
            </Tooltip>
        )
    }
]

И я получил ошибку "act / prop-types "

«Идентификатор» отсутствует в проверке правильности

То же самое с «описанием».Поэтому мне пришлось использовать:

render: (task) => (
        <Tooltip title={ task.id }>
            <div>
                { task.description }
            </div>
        </Tooltip>
    )

Интересно, может быть, все еще можно использовать деструктуризацию параметров?

Обходной путь:

"react": "^16.7.0",
"eslint": "^5.3.0",
"eslint-config-airbnb": "^17.1.0",
"eslint-plugin-react": "^7.12.4",
"eslint-plugin-react-app": "^4.0.1"

РЕДАКТИРОВАТЬ :

Я решил добавить eslint-disable-next-line для таких фрагментов кода

1 Ответ

0 голосов
/ 13 марта 2019

Речь идет не о деструктурировании, а о том, что eslint интерпретирует columns.render как компонент и просит документировать его реквизиты.

Вы все еще можете определить columns.render.propTypes для удовлетворения eslint.

    const columns = [
        {
            field: 'description',
            // The parameter is row data object
            render: ({ id, description }) => (
                <Tooltip title={ id }>
                    <div>
                        { description }
                    </div>
                </Tooltip>
            )
        }
    ];
    columns.render.propTypes = {
        id: PropTypes.string,
        description: PropTypes.string,
    };

...