反应 ESLint (react/display-name) 不工作
React ESLint (react/display-name) Not Working
我想知道 eslint 反应规则 (react/display-name)
是否适用于任何人?
目前,在我的代码中,如果我不输入 displayName
,它不会显示任何警告。
我希望如果我不输入 displayName
它会抛出一条 eslint 警告消息。
例如
Component.jsx
import React from 'react';
const Component = () => {
return (
<h1>Hello World</h1>
);
};
export default Component;
.eslintrc
{
. . .
"rules": {
"react/display-name": [2],
}
. . .
}
我期待应该有一个 lint 警告,但没有出现。
有没有我遗漏的配置?
只有当您的组件没有名称时,此规则才会显示错误。在您的情况下,您的组件名称是 Component
。这是因为 React 会自动转换组件的名称。
如果您不希望名称为 transpiled automatically,则需要使用 "react/display-name": [2, { "ignoreTranspilerName": true }],
禁用转译后的名称。然后你会得到你期望的行为。
如果您的组件如下所示,您当前配置的规则将引发错误:
const Hello = createReactClass({
render: function() {
return <div>Hello {this.props.name}</div>;
}
});
module.exports = Hello;
我想知道 eslint 反应规则 (react/display-name)
是否适用于任何人?
目前,在我的代码中,如果我不输入 displayName
,它不会显示任何警告。
我希望如果我不输入 displayName
它会抛出一条 eslint 警告消息。
例如
Component.jsx
import React from 'react';
const Component = () => {
return (
<h1>Hello World</h1>
);
};
export default Component;
.eslintrc
{
. . .
"rules": {
"react/display-name": [2],
}
. . .
}
我期待应该有一个 lint 警告,但没有出现。
有没有我遗漏的配置?
只有当您的组件没有名称时,此规则才会显示错误。在您的情况下,您的组件名称是 Component
。这是因为 React 会自动转换组件的名称。
如果您不希望名称为 transpiled automatically,则需要使用 "react/display-name": [2, { "ignoreTranspilerName": true }],
禁用转译后的名称。然后你会得到你期望的行为。
如果您的组件如下所示,您当前配置的规则将引发错误:
const Hello = createReactClass({
render: function() {
return <div>Hello {this.props.name}</div>;
}
});
module.exports = Hello;