【发布时间】:2017-10-23 18:32:39
【问题描述】:
在我周围(例如博客文章、代码)我看到了 React 无状态功能组件的代码,其中导入了 React,即使它从未使用过。
import React from 'react';
function MyComponent() {
return <div>Howdy!</div>;
}
export default MyComponent;
我想知道为什么我们需要在没有实际使用时(以任何显式方式)导入 React。
我也很惊讶我的 linter 没有抱怨未使用的导入。
是否有某些理由将React 导入我不知道的功能组件中?
【问题讨论】:
-
你真的尝试过编译它吗?我的意思是,理智的争论固然很好,但只要尝试一下就可以回答这个问题。
-
ESLint React 插件 eslint-plugin-react 公开了规则 react/react-in-jsx-scope 以确保您在使用 JSX 时在范围内有
React,因为编译后的代码引用了React。该规则的描述也回答了你的问题。 react/jsx-uses-react 规则防止React被标记为未使用。 -
@DaveNewton:在我的系统上运行良好。这就是为什么我很困惑...
-
没有导入?我不明白怎么做。
-
@DaveNewton:我猜 Babel 在后台处理它
标签: javascript reactjs ecmascript-6