You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中Prop-Types未触发预期类型警告的问题求助

React中Prop-Types未触发预期类型警告的问题求助

我最近在学习prop-types,特意想故意触发类型警告来验证它的作用,但试了好几次都没成功,实在摸不着头脑,想请教大家哪里出问题了。

我的代码情况

App.jsx

import { PropTypes } from 'prop-types';

const App = (props) => {

    return (
        <div>
            {props.name}
        </div>
    )
}

App.propTypes = {
    name: PropTypes.string.isRequired,
}

export default App

main.jsx

import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import App from './App.jsx'

createRoot(document.getElementById('root')).render(
  <StrictMode>
    <App name={1} />
  </StrictMode>,
)

问题细节

我明明在App组件里定义了name是必填的字符串类型,但现在传入数字1的时候,浏览器控制台完全没有弹出类型不匹配的警告;更奇怪的是,我如果直接写<App />不传name属性,也不会触发必填字段缺失的警告。

我已经确认浏览器控制台是开启警告显示的,而且如果删掉App.jsx里的import { PropTypes } from 'prop-types';这一行,页面会直接报错说PropTypes未定义,说明导入是生效的。现在不管传什么值给name都会正常渲染在页面上,不传的话就显示一个空div,完全看不到预期的prop-types警告。

我的环境配置

package.json

{
  "name": "react-prop-types",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "lint": "eslint .",
    "preview": "vite preview"
  },
  "dependencies": {
    "prop-types": "^15.8.1",
    "react": "^19.0.0",
    "react-dom": "^19.0.0"
  },
  "devDependencies": {
    "@eslint/js": "^9.21.0",
    "@types/react": "^19.0.10",
    "@types/react-dom": "^19.0.4",
    "@vitejs/plugin-react": "^4.3.4",
    "eslint": "^9.21.0",
    "eslint-plugin-react-hooks": "^5.1.0",
    "eslint-plugin-react-refresh": "^0.4.19",
    "globals": "^15.15.0",
    "vite": "^6.2.0"
  }
}

Node和npm版本

node --version
v18.19.1
npm --version
9.2.0

备注:内容来源于stack exchange,提问作者drearydev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:28:12