React-native:超级表达式必须为null或函数,而不是未定义

时间:2016-06-07 10:15:18

标签: reactjs react-native ecmascript-6

我已经看到了类似的问题,但我似乎无法识别问题。 我正在使用react native v 0.27 我已将所有需求方法更改为导入。

这是我收到的错误:

enter image description here

我不知道它是否相关,但错误的第一个位置指向我的LoginComp.js文件,其中包含以下代码:

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 */
'use strict';
import React, {
  AppRegistry,
  Component,
  StyleSheet,
  Text,
  View,
  Image,
  TextInput,
  Button,
  TouchableHighlight
} from 'react-native';

class LoginComp extends Component {
  constructor(){
    super(props);
  }
  render() {
    return (
      <View style={{flex: 1}}>
        <View style={this.props.styles.loginLogoContainer}>
          <Image style={this.props.styles.view1logo} source={require('../imgs/Logo.png')} />
        </View>
        <View style={this.props.styles.loginContainer}>
          <Text>Użytkownik:</Text>
          <TextInput
            style={this.props.styles.defaultInput}
            placeholder="Użytkownik"
            stretch={true}
            autoComplete={false}
            autoCorrect={false}
          />
          <Text>Hasło:</Text>
          <TextInput
            style={this.props.styles.defaultInput}
            placeholder="Hasło"
            stretch={true}
            autoComplete={false}
            autoCorrect={false}
            secureTextEntry={true}
          />
        <TouchableHighlight onPress={this.props.LoginPress}>
            <Text style={this.props.styles.loginButton}>Login</Text>
          </TouchableHighlight>
        </View>
        <View style={this.props.styles.registrationWrapper}>
          <Text>- lub -</Text>
          <TouchableHighlight onPress={this.props.t_Registration}>
            <Text style={this.props.styles.registration}>Załóż nowe konto</Text>
          </TouchableHighlight>
        </View>
      </View>
    );
  }
}

module.exports = LoginComp;

6 个答案:

答案 0 :(得分:47)

更改您的导入语句,如下所示,然后尝试。

import React, { Component } from 'react';

import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  Image,
  TextInput,
  Button,
  TouchableHighlight,
} from 'react-native';

构造函数也应如下所示

constructor(props){
    super(props);
}

答案 1 :(得分:9)

我遇到了同样的问题。错误导入

import React, { Component } from "react-native";

代替

import React, { Component } from "react";

查看此答案https://stackoverflow.com/a/37676646/5367816

答案 2 :(得分:2)

我在尝试使用时遇到此错误:

class Leaderboard extends React.component {

}

它应该是Component的大写C!

答案 3 :(得分:1)

Personnaly,我用另一种方式解决了这个问题:

我正在导入import Module from "./path/to/Module.js"之类的默认模块 但在Module.js文件中,我省略了默认关键字
export class Module {/*...*/} - &gt; export default class Module {/*...*/}

希望这会对某人有所帮助。 =)

答案 4 :(得分:0)

只需在App.js文件中添加道具

type Props = {}; 导出默认类App扩展组件

答案 5 :(得分:0)

可能是expo / react本机的最新版本,不支持@ expo / react-native-action-sheet @ 2.5.0

升级@ expo / react-native-action-sheet对我有用:

添加纱线@ expo / react-native-action-sheet @ latest