我尝试将react-native-step-indicator与react-native项目一起使用。但它返回了这个错误。 undefined不是对象(评估' React.PropTypes.func')
这是我的package.json文件。
{
"name": "app-test",
"version": "0.1.0",
"private": true,
"devDependencies": {
"jest-expo": "25.0.0",
"react-native-scripts": "1.11.1",
"react-test-renderer": "16.2.0"
},
"main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
"scripts": {
"start": "react-native-scripts start",
"eject": "react-native-scripts eject",
"android": "react-native-scripts android",
"ios": "react-native-scripts ios",
"test": "node node_modules/jest/bin/jest.js"
},
"jest": {
"preset": "jest-expo"
},
"dependencies": {
"expo": "^25.0.0",
"firebase": "^4.9.0",
"react": "16.2.0",
"react-dom": "^16.2.0",
"react-native": "0.52.0",
"react-native-android-kit": "^1.2.1",
"react-native-gesture-handler": "^1.0.0-alpha.40",
"react-native-indicators": "^0.11.1",
"react-native-paged-scroll-view": "^2.0.4",
"react-native-pathjs-charts": "0.0.33",
"react-native-router-flux": "^4.0.0-beta.28",
"react-native-step-indicator": "0.0.7",
"react-native-tab-view": "^0.0.74",
"react-native-tabs": "^1.0.9",
"react-native-viewpager": "^0.2.13",
"react-navigation": "^1.0.0-beta.27",
"victory": "^0.25.4",
"victory-native": "^0.17.0"
}
}

这是我要整合步骤指标的页面。
import React, { Component } from 'react';
import { AppRegistry,StyleSheet,View, Text } from 'react-native';
import ViewPager from 'react-native-viewpager';
import StepIndicator from 'react-native-step-indicator';
const PAGES = ['Page 1','Page 2','Page 3','Page 4','Page 5'];
const firstIndicatorStyles = {
stepIndicatorSize: 30,
currentStepIndicatorSize:40,
separatorStrokeWidth: 3,
currentStepStrokeWidth: 5,
separatorFinishedColor: '#4aae4f',
separatorUnFinishedColor: '#a4d4a5',
stepIndicatorFinishedColor: '#4aae4f',
stepIndicatorUnFinishedColor: '#a4d4a5',
stepIndicatorCurrentColor: '#ffffff',
stepIndicatorLabelFontSize: 15,
currentStepIndicatorLabelFontSize: 15,
stepIndicatorLabelCurrentColor: '#000000',
stepIndicatorLabelFinishedColor: '#ffffff',
stepIndicatorLabelUnFinishedColor: 'rgba(255,255,255,0.5)',
labelColor: '#666666',
labelSize: 12,
currentStepLabelColor: '#4aae4f'
}
const secondIndicatorStyles = {
stepIndicatorSize: 25,
currentStepIndicatorSize:30,
separatorStrokeWidth: 2,
currentStepStrokeWidth: 3,
stepStrokeCurrentColor: '#fe7013',
stepStrokeWidth: 3,
stepStrokeFinishedColor: '#fe7013',
stepStrokeUnFinishedColor: '#aaaaaa',
separatorFinishedColor: '#fe7013',
separatorUnFinishedColor: '#aaaaaa',
stepIndicatorFinishedColor: '#fe7013',
stepIndicatorUnFinishedColor: '#ffffff',
stepIndicatorCurrentColor: '#ffffff',
stepIndicatorLabelFontSize: 13,
currentStepIndicatorLabelFontSize: 13,
stepIndicatorLabelCurrentColor: '#fe7013',
stepIndicatorLabelFinishedColor: '#ffffff',
stepIndicatorLabelUnFinishedColor: '#aaaaaa',
labelColor: '#999999',
labelSize: 13,
currentStepLabelColor: '#fe7013'
}
const thirdIndicatorStyles = {
stepIndicatorSize: 25,
currentStepIndicatorSize:30,
separatorStrokeWidth: 2,
currentStepStrokeWidth: 3,
stepStrokeCurrentColor: '#7eaec4',
stepStrokeWidth: 3,
stepStrokeFinishedColor: '#7eaec4',
stepStrokeUnFinishedColor: '#dedede',
separatorFinishedColor: '#7eaec4',
separatorUnFinishedColor: '#dedede',
stepIndicatorFinishedColor: '#7eaec4',
stepIndicatorUnFinishedColor: '#ffffff',
stepIndicatorCurrentColor: '#ffffff',
stepIndicatorLabelFontSize: 0,
currentStepIndicatorLabelFontSize: 0,
stepIndicatorLabelCurrentColor: 'transparent',
stepIndicatorLabelFinishedColor: 'transparent',
stepIndicatorLabelUnFinishedColor: 'transparent',
labelColor: '#999999',
labelSize: 13,
currentStepLabelColor: '#7eaec4'
}
export default class E2 extends Component {
constructor() {
super();
var dataSource = new ViewPager.DataSource({
pageHasChanged: (p1, p2) => p1 !== p2,
});
this.state = {
dataSource: dataSource.cloneWithPages(PAGES),
currentPage:0
}
}
render() {
return (
<View style={styles.container}>
<View style={styles.stepIndicator}>
<StepIndicator customStyles={firstIndicatorStyles} currentPosition={this.state.currentPage} labels={["Account","Profile","Band","Membership","Dashboard"]} />
</View>
</View>
);
}
renderViewPagerPage = (data) => {
return(<View style={styles.page}>
<Text>{data}</Text>
</View>)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#ffffff',
},
stepIndicator: {
marginVertical:50,
},
page: {
flex:1,
justifyContent:'center',
alignItems:'center'
}
});
&#13;
答案 0 :(得分:0)
正在与
一起使用 "react-native": "0.54.2"
在纯本机环境中。 请尝试使用最新的依赖项。
答案 1 :(得分:0)
React.Proptypes在React v15.5.0中已弃用,
该库已从最新版本的React.PropTypes迁移到prop-types
。
您应该使用最新版本。