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
相关产品推荐
相关产品推荐

