删除并重新安装我的node_modules文件夹后,我遇到了一个我在LayoutPropTypes.js文件中无法理解的问题。
0b000000000000000001
以下变量未定义:node_modules/react-native/Libraries/StyleSheet/LayoutPropTypes.js
react-native:0.45.1 反应:16.0.0-alpha.12
答案 0 :(得分:30)
React.PropTypes is now deprecated:
注意:从React v15.5开始,不推荐使用React.PropTypes。请使用 支持类型库。
您现在需要单独添加prop-types包。该错误很可能刚刚开始显示,因为您删除了node_modules
文件夹,然后重新安装了升级react
版本的所有内容。
答案 1 :(得分:11)
您确定使用的是反应16.0.0-alpha.12
吗?
检查您的 package.json ,如果您在反应版本之前有^
,如果有,可能已经安装了最新的反应版本,目前为16.0.0-alpha.13
,就像你说的那样打破了(我自己也遇到了问题)。在版本之前使用^
,允许它安装较新的次要版本和补丁版本。 You can read more about it here
要使其保持您指定的确切版本,只需删除版本之前的^
,以便您的package.json如下所示:
"dependencies": {
"react": "16.0.0-alpha.12",
"react-native": "0.45.1",
}
请记住在更改后重新安装node_modules。
答案 2 :(得分:9)
Propacts不再提供React。您需要安装它。
首先通过运行prop-types
安装npm i prop-types --save
包。
接下来将prop-types
包用于您的组件,如下所示:
import React from 'react'
import PropTypes from 'prop-types'
export const AwesomeComponent = props => {
return(
<h1>Hello {props.name}</h1>
)
}
AwesomeComponent.propTypes = {
name: PropTypes.string.isRequired
}
如果您使用的是这样的类型脚本,只需使用界面:
import * as React from 'react'
interface IAwesomeComponentProps {
name: string
}
export const AwesomeComponent: React.FC<IAwesomeComponentProps> = props => {
return(
<h1>Hello {props.name}</h1>
)
}
答案 3 :(得分:2)
我有类似的问题,没有解决方案。谈论'prop-types'包的答案毫无意义,问题来自于本地反应源代码。这不是手动修复node_modules文件夹中的本机源的选项。
答案 4 :(得分:0)
现在您可以更新到react-native 0.46.4,只需按照本指南操作: https://facebook.github.io/react-native/docs/upgrading.html
我的package.json看起来像这样:
"react": "16.0.0-alpha.12",
"react-native": "0.46.4",
答案 5 :(得分:0)
而不是像这样定义component的值: propName:React.PropTypes.string
像这样定义 propName:PropTypes.string
最后保存它。