Вам действительно нужно импортировать React при создании хуков? (React-крюки) - PullRequest
2 голосов
/ 25 июня 2019

Я видел примеры, где https://reactjs.org/docs/hooks-custom.html они всегда делают:

import React, { useState, useEffect } from 'react';

Но React на самом деле не используется в файле, нам это действительно нужно и зачем?

Я задал этот вопрос, потому что у меня возникла проблема с высказыванием eslint:

'React' is defined but never used no-unused-vars - И я нахожусь на create-реагировать-приложение 3.0.1, которое eslint уже включено - (и я 'Я не уверен, как это исправить - уже пробовал это , а также пытался добавить его в package.json eslintConfig, но все равно ничего)

Ответы [ 2 ]

3 голосов
/ 25 июня 2019

Вам понадобится React, если вы делаете рендеринг JSX.

Чтобы избежать этого eslint предупреждения, вы должны использовать response-in-jsx-scope правило из eslint-plugin-реаги * .

В этом правиле также объясняется, почему вам нужен React в файле, даже если вы его не используете (вы думаете, что вы его не используете, но если вы визуализируете JSX, вы это делаете).

При использовании JSX <a /> расширяется до React.createElement("a"). Поэтому переменная React должна находиться в области видимости. Если вы используете прагму @jsx, это правило будет проверять назначенную переменную, а не React.

1 голос
/ 25 июня 2019

Из официальных документов React:

По сути, JSX просто предоставляет синтаксический сахар для функции React.createElement(component, props, ...children).Код JSX:

<MyButton color="blue" shadowSize={2}>Click Me</MyButton>

компилируется в:

React.createElement(MyButton, {color: 'blue', shadowSize: 2},'Click Me' )

Вы также можете использовать самозакрывающуюся форму тега, если нет дочерних элементов.Итак:

<div className="sidebar" /> 

компилируется в:

React.createElement('div', {className: 'sidebar'}, null )

https://reactjs.org/docs/jsx-in-depth.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...