PropTypes在功能无状态组件中

Ala*_*hen 78 javascript reactjs react-proptypes react-props

在不使用类的情况下,如何在函数无状态组件中使用PropTypes?

export const Header = (props) => (
   <div>hi</div>
)
Run Code Online (Sandbox Code Playgroud)

Mic*_*ael 116

官方的文档显示如何使用ES6组件类做到这一点,但同样适用于无状态的功能组件.

首先,npm install/ yarn add新的道具类型包,如果你还没有准备好.

然后,在导出之前,在定义无状态功能组件之后添加propTypes(以及defaultProps,如果需要).

import React from "react";
import PropTypes from "prop-types";

const Header = ({ name }) => <div>hi {name}</div>;

Header.propTypes = {
  name: PropTypes.string
};

// Same approach for defaultProps too
Header.defaultProps = {
  name: "Alan"
};

export default Header;
Run Code Online (Sandbox Code Playgroud)

  • @Yarik通过使用 propTypes 你可以为你完成一些自动检查。每次您的代码“违反合同”时,您都会收到警告。 (3认同)

I P*_*ana 21

它与有状态没有什么不同,你可以添加它:

import PropTypes from 'prop-types';
Header.propTypes = {
  title: PropTypes.string
}
Run Code Online (Sandbox Code Playgroud)

这是prop-types npm 的链接

  • 虽然如果你使用的是更新版本的React,你会想要自己导入`PropTypes`,在这种情况下你会想要放弃`React`并且只有`title:PropTypes.string` (2认同)