得到错误:" react.createclass不是一个函数"

时间:2016-06-15 23:32:40

标签: javascript reactjs react-native

我是一名较新的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;

1 个答案:

答案 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。