2016-06-15 32 views
4

我是一个较新的JS开发人员,我正在探索阵营原生。我最近购买了Bonnie Eisenman的“Learning React Native”,并正在开发第一个小型项目 - 一个非常基础的天气应用程序。收到错误:“react.createclass是不是一个函数”

不幸的是,我不能让笔者提供工作的代码(见下面的一些代码,或看到整个事情here)。我不断收到错误“React.createClass不是一个函数”,尽管我已经看到了很多其他的例子,这些工作很好。我一直在花费数小时研究和提出问题,但没有成功。请帮忙!

var React = require('react-native'); 
var { 
    StyleSheet, 
    Text, 
    View, 
    TextInput 
} = React; 


var WeatherProject = React.createClass({ 
    .... 
}); 

module.exports = WeatherProject; 

回答

5
根据反应本地文档 https://facebook.github.io/react-native/

如果您需要从阵营

“反应”不“反应母语”

,需要你的样式表,文本,查看,的TextInput“从文档反应母语”(就像你正在做)

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语法。你会看起来更像是这样的:尽管基于对象

var React = require('react'); 
var { 
    StyleSheet, 
    Text, 
    View, 
    TextInput 
} = require('react-native'); 


var WeatherProject = React.createClass({ 
    .... 
}); 

module.exports = WeatherProject; 

解构你做你已经在支持ES6的环境中,它可能是更好的只是使用ES6代替。

+1

这个问题解决了!非常感谢。我怀疑自从这位女士写了这本书/这段代码以后,'反应原生'是否发生了变化?超级沮丧,但很高兴有这个解决。 –

相关问题