我是一名较新的JS开发人员,我正在探索React-Native。我最近购买了#34; Learning React Native"作者:Bonnie Eisenman,我正在开展第一个迷你项目 - 一个非常基本的天气应用程序。
不幸的是,我无法获得作者提供的代码(请参阅下面的部分代码,或查看整个内容here)。我一直得到错误" React.createClass不是一个功能",尽管我已经看过其他许多例子,但这种方法很好用。我花了几个小时研究并提出问题却没有成功。请帮忙!
var React = require('react-native');
var {
StyleSheet,
Text,
View,
TextInput
} = React;
var WeatherProject = React.createClass({
....
});
module.exports = WeatherProject;
答案 0 :(得分:5)
根据react-native文档 https://facebook.github.io/react-native/
你应该要求'react'中的React而不是'react-native'
并要求你的StyleSheet,Text,View,TextInput来自'react-native'(就像你现在正在做的那样)
来自文档:
import React, {
Component,
} from 'react';
import {
TabBarIOS,
NavigatorIOS,
} from 'react-native';
class App extends Component {
render() {
return (
<TabBarIOS>
<TabBarIOS.Item title="React Native" selected={true}>
<NavigatorIOS initialRoute={{ title: 'React Native' }} />
</TabBarIOS.Item>
</TabBarIOS>
);
}
}
这是使用ES6 / ES2015扩展react组件的语法。你的看起来会更像这样:
var React = require('react');
var {
StyleSheet,
Text,
View,
TextInput
} = require('react-native');
var WeatherProject = React.createClass({
....
});
module.exports = WeatherProject;
虽然基于您正在进行的对象解构,您已经处于支持ES6的环境中,但最好只使用ES6。