我如何使用React的prop-types包检查特定类型的元素?

问题描述 投票:0回答:1

我想使用prop-types专门检查imgsvg元素(在顶层)。我将如何使用该库进行检查或创建自定义prop类型来进行此检查?

reactjs react-proptypes
1个回答
0
投票

您可以使用JSX对象的type属性来检查正在传递的HTML元素。

子组件

class SomeComponent extends React.Component {
    render() {
        const { passedElement } = this.props;

        return (
            {passedElement}
        );
    }
}

SomeComponent.propTypes = {
    passedElement: PropTypes.shape({
        type: PropTypes.oneOf(['img', 'svg']),
    }),
};

父组件

class App extends React.Component {
    render() {
        // Warning: Failed prop type: Invalid prop `passedElement.type` of value `div` supplied to `SomeComponent`, expected one of ["img","svg"].
        return <SomeComponent passedElement={<div></div>} />

        // No error, renders as expected
        return <SomeComponent passedElement={<img />} />
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.