• [React] Validate Custom React Component Props with PropTypes


    In this lesson we'll learn about how you can use the prop-types module to validate a custom React component's props.

    You can write you own PropTypes vlidators like such:

    const PropTypes = {
      string(props, propName, componentName) {
        if(typeof props[propName] !== 'string') {
          return new Error(
            `You should pass a string for ${propName} but you pass ${typeof props[propName]}`
            )
        }
      }
    }

    Because this is commonly used, so we can use React libs for that:

    https://www.npmjs.com/package/prop-types

    <body>
    <script src="https://unpkg.com/react@16.0.0/umd/react.development.js"></script>
    <script src="https://unpkg.com/react-dom@16.0.0/umd/react-dom.development.js"></script>
    <script src="https://unpkg.com/prop-types@15.6.0/prop-types.js"></script>
    <script src="https://unpkg.com/babel-standalone@6.26.0/babel.js"></script>
    <div id="root"></div>
    
    <script type="text/babel">
    class SayHello extends React.Component {
      static propTypes = {
        firstName: PropTypes.string.isRequired,
        lastName: PropTypes.string.isRequired,
      }
      
      render() {
        return (
          <div>
            Hello {this.props.firstName} {this.props.lastName}!
          </div>
        )
      }
    }
    
    ReactDOM.render(
      <SayHello firstName={true} />,
      document.getElementById('root')
    )
    </script>
    </body>

    For producation, PropTypes is not necessary, and will slow down the proferemence, so we can remove it by using the babel plugin:

    https://www.npmjs.com/package/babel-plugin-transform-react-remove-prop-types

  • 相关阅读:
    2020.11.6
    2020.7.15小日记
    P1536 村村通
    P1510 精卫填海
    P1020 导弹拦截
    P1164 小A点菜
    5.17练习总结
    P1135 奇怪的电梯
    P1101 单词方阵
    P1443 马的遍历
  • 原文地址:https://www.cnblogs.com/Answer1215/p/8000858.html
Copyright © 2020-2023  润新知