我正在启动一个带有expo的本地反应项目并且在启动时运行良好。然后我在我的项目中安装了native-matreial-design并从react-native-material-design导入了Example Button,我得到以下错误。
我的代码看起来像这样
import React from 'react';
import { View } from 'react-native';
import { Button } from 'react-native-material-design';
export default class App extends React.Component {
render() {
return (
<View>
<Button value="NORMAL FLAT" onPress={()=> console.log("I pressed a flat button")} />
<Button value="NORMAL RAISED" raised={true} onPress={()=> console.log("I pressed a raised button")} />
</View>
);
}
}
答案 0 :(得分:2)
问题是您的React Native版本和react-native-material-design
。 PropTypes
的使用在过去几个月内已发生变化a separate library。 React Native在很长一段时间内发出了警告,指出React.PropTypes
将被弃用,看起来他们最终在version 0.47.2中做了。
因此,react-native-material-design
仍在使用React.PropTypes
。以下是Icon.js
中的问题:
import React, {Component, PropTypes} from "react";
...
static propTypes = {
name: PropTypes.string.isRequired,
style: View.propTypes.style,
size: PropTypes.number,
color: PropTypes.string,
allowFontScaling: PropTypes.bool
};
您需要降级RN,在叉子中为它们修复此问题并放入PR,或使用其他库。已经an issue。
答案 1 :(得分:0)
我修好了。我的问题是Proptypes在反应原生材料设计中的定义。 所以我改变了:Node_modules-&gt;反应天然材料-设计 - &GT; LIB 并替换proptypes定义
import Proptypes from 'react';
到
import PropTypes from 'prop-types';
在lib文件夹里面的所有文件中 Button.js,Checkbox.js,IconToggle.js,Progress.js,RadioButton.js,RangeSlider.js,Ripple.js,Slider.js,Textfield.js以及所有其他文件。