您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

ESLint-组件应被编写为纯函数(react preferred / stateless function)

ESLint-组件应被编写为纯函数(react preferred / stateless function)

两种选择。

(未经测试;并且有多种方法可以执行此操作。)

// eslint-disable-next-line react/prefer-stateless-function
export class myComponent extends React.Component {
  ...
}

返回值就是将要呈现的值(例如,您基本上是在编写基于类的组件的render方法

export const myComponent = () => {
  return (
    // JSX here
  )
}

(如果那是您的事,请使用非ES6表示法。)

对于没有其他支持逻辑的此类组件,我更喜欢隐式返回,例如,

export MyComponent = () =>
  <div>
    // Stuff here
  </div>

这是优先事项。我要说的是,您应该遵循React命名约定,并保持所有组件以大写字母开头。

ESLint可能会抱怨缺少多行JSX表达式周围的括号,因此请禁用该规则或使用括号。

如果需要道具,它们将作为参数传递给函数

const MyComponent = (props) =>
  <div>
    <Something someProp={props.foo} />
  </div>

export MyComponent

为了方便起见,您可以像往常一样对参数进行解构:

const MyComponent = ({ foo }) =>
  <div>
    <Something someProp={foo} />
  </div>

如果您使用的是本地var,这可以使隐式返回变得容易一些。PropTypes除非声明它们,否则您会收到有关丢失的ESLint警告。因为它不是一个类,所以您不能简单地static propTypes在该类中使用它,因此必须将它们附加到该函数上(无论如何,这还是很多人喜欢的)。

其他 2022/1/1 18:12:31 有890人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶