,

React 19已完全移除了 PropTypes 的内置支持

React19以前 ./components/ChildCom App.jsx 如何看到警告 打开浏览器的开发…

React19以前

./components/ChildCom

import PropTypes from 'prop-types';
const ChildCom = (props) => {
    return (
        <div>
            这是子组件
            <span>姓名:{props.name} 年龄:{props.age}</span>
        </div>
    );
};

ChildCom.propTypes = {
    name: PropTypes.string.isRequired,
    age : PropTypes.number.isRequired,
}

export default ChildCom;

App.jsx

import './App.css'
import ChildCom from './components/ChildCom';

function App() {
  
  return (
    <>
      <div>Hello React</div>
      <ChildCom name="张三" age="18" />
    </>
  )
}
export default App

如何看到警告

打开浏览器的开发者工具(F12),查看 Console 标签页,你应该能看到类似这样的警告:

Warning:&nbsp;Failed&nbsp;prop&nbsp;type:&nbsp;The&nbsp;prop&nbsp;
`age`&nbsp;is&nbsp;marked&nbsp;as&nbsp;required&nbsp;in&nbsp;
`ChildCom`,&nbsp;but&nbsp;its&nbsp;value&nbsp;is&nbsp;
`undefined`.

React19之后

不会产生错误信息,因为React 19 已经 完全移除了 PropTypes 的内置支持,可以采用Typescript实现校验

ChildCom.tsx

interface Props {
    name: string;
    age: number;
}
const ChildCom = (props: Props) => {
    return (
        <div>
            这是子组件
            <span>姓名:{props.name} 年龄:{props.age}</span>
        </div>
    );
};

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About the Author

每个人都有自己得时区,在自己得时区里,一切都是准时的。

BlockSpare — News, Magazine and Blog Addons for (Gutenberg) Block Editor