1.我使用react@16.0.0-alpha.12
,react-native@0.45.1
,在模擬是可以正常使用的,但是在chrome調試工具中出現了警告:
ExceptionsManager.js:71 Warning: PropTypes has been moved to a separate package. Accessing React.PropTypes is no longer supported and will be removed completely in React 16. Use the prop-types package on npm instead. (https://fb.me/migrating-from-react-proptypes)
ExceptionsManager.js:71 Warning: React.createClass is no longer supported. Use a plain JavaScript class instead. If you're not yet ready to migrate, create-react-class is available on npm as a drop-in replacement. (https://fb.me/migrating-from-react-create-class)
並且不能使用react dev-tools 進行偵錯
我的程式碼:
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react'
import {
AppRegistry,
View,
Text,
StyleSheet
} from 'react-native'
export default class second extends Component{
render () {
return (
<View style={{
flex: 1,
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'ghostwhite'
}}>
<Text style={{fontSize: 28, color: 'cadetblue'}}>class extends</Text>
</View>
)
}
componentDidMount () {
console.log('==========')
this.testConsolelog()
}
testConsolelog () {
console.log('e3423423432')
}
}
const styles2 = StyleSheet.create({
bigblue: {
color: 'blue',
fontWeight: 'bold',
fontSize: 30,
},
red: {
color: 'red',
},
});
AppRegistry.registerComponent('second', () => second);
你用的react16中,已經棄用了
React.createClass
這個方法。因此react16的版本就無法透過該方法來建立元件了。你必須使用ES6的方式來創建元件了。
如果你的程式碼中使用了mixins而必須使用
createClass
的話,你需要單獨引入另一個工具庫。另外,
React.propTypes
也不能使用了,你想要偵測props,react16中需要引入一個單獨的工具。不能使用react dev-tools, 是不是沒有勾選允許存取檔案位址