不变违规:元素类型无效:预期为字符串(对于内置组件)或类/函数,但得到:未定义

时间:2018-06-20 08:47:56

标签: javascript react-native

你好,我在尝试实现包含注销按钮的标头时遇到此错误。我得到的错误是检查render方法。但无法弄清楚错误。我得到错误的文件如下

  import React from "react";
    import {
      ScrollView,
      View,
      StyleSheet,
      Image,
      Text,
      Button,
      Title,
      Header,
      AsyncStorage,
      Icon
    } from "react-native";
    import {
      RkText,
    } from "react-native-ui-kitten";
    import Card from "./Card";
    import CardSection from "./CardSection";
    import Login from './Login';


    export class GridV2 extends React.Component {
      onPressLogout(){
          AsyncStorage.removeItem(token);
      }

      render() {
        return (
        <View>
        <Header style={{backgroundColor:'#B00000'}}>    
               <Button
                  transparent
                  onPress={() => this.onPressLogout()}
                >
                  <Icon 
                  style= {{color: '#ffffff', fontSize: 25, paddingTop:0}}
                  name="bars" />
                </Button>
            </Header>
          <Card>
              <CardSection>
            </CardSection>
          </Card>

          </View>
        );
      }
    }

我正在我的登录屏幕中导入此GridV2。登录屏幕如下。该代码有什么错误?请帮忙。

    import React, {Component} from 'react';
    import  { Container,
        Title,
        InputGroup,
        Input,
        Button,
        Text,
        View,
        Spinner,
        Item,
        Label,  
    }  from 'native-base';
    import {
        StyleSheet,
        Image,
        Navigator,
        TouchableOpacity,
        AsyncStorage,
        Linking
    } from 'react-native';

    import QASection from './QASection';
    import GridV2 from './grid2';

    class Login extends Component{
        state = { userdetail: [] };
        constructor(props) {
            super(props);
            this.initialState = {
                isLoading: false,
                error: null,
                username: '',
                password: ''        
            };
            this.state = this.initialState;
        }
        render() {
            return();
        }

1 个答案:

答案 0 :(得分:1)

您输入/输出错误。请删除所有未使用的导入,并检查要导入的导入包中是否包含要导入的导入包。例如,据我所知,react-native(DOC中没有Header组件 您应该使用命名的import导入GridV2

import { GridV2 } from './grid2';

或默认情况下,导出是第一个:

export default class GridV2 extends React.Component {

请检查其他导入是否完好(文件名正确等)。 link很好地解释了进出口。

此外,您不应该像这样从渲染方法返回return ();。而是返回null,如下所示:

return (null);