为“系统提供的”道具反应propTypes?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (54)

对于某些React组件提供的道具,PropTypes的最佳做法是什么,例如:

  • ReactRouter的props.location和props.match提供程序
  • 如果组件'连接'到Redux商店,则props.dispatch()

是否有必要为这些属性使用propTypes?

在props.match的情况下,我应该检查多少财产?是否足以检查props.match或者我应该检查props.match.url如果match.url是我需要的特定组件吗?

谢谢

import PropTypes from 'prop-types'

class ProductsList extends Component {

  constructor(props) {
    super(props);

    this.handleSelect = this.handleSelect.bind(this);
  }

  handleSelect(product_id) {
      this.props.dispatch(handleAddProduct(product_id));
  }

  render() {
      const {match, location} = this.props;

     return (... JSX code goes here ....)
  }
}

ProductsList.propTypes = {
  match: PropTypes.object.isRequired,
  location: PropTypes.object.isRequired
  dispatch: PropTypes.func.isRequired
}

export default connect()(ProductsList)
提问于
用户回答回答于

编号库本身使用propTypes。检查链接

  Route.propTypes = {
    children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
    component: PropTypes.func,
    exact: PropTypes.bool,
    location: PropTypes.object,
    path: PropTypes.string,
    render: PropTypes.func,
    sensitive: PropTypes.bool,
    strict: PropTypes.bool
};

扫码关注云+社区

领取腾讯云代金券