反应原生createClass错误

时间:2017-05-17 23:56:42

标签: react-native

我有这个代码:

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

var Weather = React.createClass({
  render: function(){
    return <MapView style={styles.map}></MapView>
  }

});

const styles = StyleSheet.create({
  map: {
    flex: 1,
  }
});

AppRegistry.registerComponent('Weather', () => Weather);

我只想测试地图,但是,当我运行它时,我收到错误:

似乎你正试图访问'react-native'包。也许您打算从'react'包中访问'React.createClass'而不是?

我不知道上述代码有什么问题,你能帮我解决吗?

由于

2 个答案:

答案 0 :(得分:1)

您导入错误。您还需要导入React以便能够使用React.createClass,现在您将React命名为&#39; react-native&#39;库:

var React = require('react');
var ReactNative = require('react-native');
var {
  AppRegistry,
  MapView,
  View,
  StyleSheet
} = ReactNative;

答案 1 :(得分:0)

我相信ES6类是在React Native中创建反应组件的推荐方法。要做到这一点,你的组件应该是这样的:

import React, { Component } from 'react'
import {
  AppRegistry,
  MapView,
  View,
  StyleSheet
} from 'react-native'

class Weather extends Component {
  render () {
    ...
  }
}

希望这会有所帮助。