web-dev-qa-db-ja.com

React-native:スーパー式は、未定義ではなく、nullまたは関数でなければなりません

同様の質問が表示されましたが、問題を特定できないようです。反応ネイティブ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;
16
noa-dev

以下のようにインポート文を変更して、試してください。

import React, { Component } from 'react';

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

また、コンストラクタは次のようにする必要があります

constructor(props){
    super(props);
}
49
Jickson

私は同じ問題に直面しました。誤ってインポートされた

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

の代わりに

import React, { Component } from "react";

この回答を参照してください https://stackoverflow.com/a/37676646/5367816

12
akhil xavier

個人的に、私はこの問題を別の方法で解決しました:

import Module from "./path/to/Module.js"のようなデフォルトモジュールをインポートしていました。
しかし、Module.jsファイルでは、デフォルトのキーワードを省略しました
export class Module {/*...*/}->export default class Module {/*...*/}

これが誰かを助けることを願っています。 =)

1
Yairopro

app.jsファイルに小道具を追加するだけです

タイプProps = {};エクスポートデフォルトクラスアプリはコンポーネントを拡張します

0
sujeetkr