标题重写为:错误:无效的元素类型:预期为字符串(用于内置组件)或类/函数(用于复合组件),但实际得到的是未定义的元素类型
P粉701491897
P粉701491897 2023-09-01 13:23:24
[React讨论组]
<p>如何在我的React Native代码中解决这个问题?错误显示为“错误:元素类型无效:预期为字符串(用于内置组件)或类/函数(用于复合组件),但得到的是undefined。您可能忘记从定义它的文件中导出组件,或者可能混淆了默认导入和命名导入。请检查<code>TopNavigation</code>的渲染方法。”</p> <p>我尝试重新启动应用程序和机器,但这个错误没有消失,有人可以帮我解决这个问题吗?</p> <p>这是我的导出方式:</p> <pre class="brush:php;toolbar:false;">import { StyleSheet, View, Image } from 'react-native' import React from 'react' import logo from '../../assets/Logo.png'; import { icons1, logo2 } from '../Styles/styles'; import { Ionicons } from 'react-native-vector-icons'; import { Entypo } from 'react-native-vector-icons'; export default TopNavigation = ({ navigation, page }) =&gt; { return ( &lt;View style={page === 'home' ? styles.container : { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', width: '100%', paddingVertical: 10, position: 'absolute', top: 0, zIndex: 100, backgroundColor: 'black', }}&gt; &lt;Entypo name=&quot;camera&quot; size={24} color=&quot;black&quot; style={icons1} onPress={() =&gt; navigation.navigate('c')} /&gt; { page === 'home' ? &lt;Image source={logo} style={logo2} /&gt; : &lt;Image /&gt; } { page === 'profile' &amp;&amp; &lt;Ionicons name=&quot;settings-sharp&quot; size={24} color=&quot;black&quot; style={styles.icons11} onPress={() =&gt; navigation.navigate('settings')} /&gt; } &lt;/View&gt; ) }</pre> <p>这是如何使用该组件的:</p> <code>从 '../../Components/TopNavigation' 导入 TopNavigation;</code></p> <p><code> <TopNavigation navigation={navigation} page={'home'} /></code></p> <p>我的依赖项:</p> <pre class="brush:php;toolbar:false;">&quot;dependencies&quot;: { &quot;@react-native-async-storage/async-storage&quot;: &quot;^1.17.11&quot;, &quot;@react-native-community/geolocation&quot;: &quot;^3.0.5&quot;, &quot;@react-navigation/native&quot;: &quot;^6.1.3&quot;, &quot;@react-navigation/native-stack&quot;: &quot;^6.9.9&quot;, &quot;@shopify/flash-list&quot;: &quot;^1.4.1&quot;, &quot;react&quot;: &quot;18.2.0&quot;, &quot;react-native&quot;: &quot;0.71.2&quot;, &quot;react-native-gesture-handler&quot;: &quot;^2.9.0&quot;, &quot;react-native-safe-area-context&quot;: &quot;^4.5.0&quot;, &quot;react-native-screens&quot;: &quot;^3.19.0&quot;, &quot;react-native-vector-icons&quot;: &quot;^9.2.0&quot; },</pre> <pre class="brush:php;toolbar:false;">import { StyleSheet, View, StatusBar } from 'react-native'; import React, { useEffect, useState, useCallback } from 'react'; import BottomNavigation from '../../Components/BottomNavigation'; import TopNavigation from '../../Components/TopNavigation'; export default function Home({ navigation }) { const [userdata, setUserdata] = useState(null); AsyncStorage.getAllKeys() .then((keys) =&gt; { keys.forEach((key) =&gt; { AsyncStorage.getItem(key) .then((value) =&gt; { console.log(`${key}: ${value}`); }) .catch((error) =&gt; { console.log(`Error retrieving data for key ${key}: ${error}`); }); }); }) .catch((error) =&gt; { console.log(`Error retrieving keys: ${error}`); }); return ( &lt;View style={styles.container}&gt; &lt;StatusBar /&gt; &lt;BottomNavigation navigation={navigation} page={'home'} /&gt; &lt;TopNavigation navigation={navigation} page={'home'} /&gt; &lt;/View&gt; ); }</pre></p>
P粉701491897
P粉701491897

全部回复(1)
P粉215292716

我认为在TopNavigation组件的代码中存在问题。

我在codesandbox中尝试了相同的代码,问题似乎与Entypo组件有关。

尝试删除Entypo组件的使用,并使用另一种解决方法代替Entypo。

尝试下面的解决方案,希望对你有用。

例如:

import { StyleSheet, View, Image } from 'react-native'
import React from 'react'
import logo from '../../assets/Logo.png';
import { icons1, logo2 } from '../Styles/styles';
import { Ionicons } from 'react-native-vector-icons';
import { Entypo } from 'react-native-vector-icons';

export default TopNavigation = ({ navigation, page }) => {

    return (
        <View style={page === 'home' ? styles.container : {
            flexDirection: 'row',
            alignItems: 'center',
            justifyContent: 'space-between',
            width: '100%',
            paddingVertical: 10,
            position: 'absolute',
            top: 0,
            zIndex: 100,
            backgroundColor: 'black',
        }}>
            {
                page === 'home' ? <Image source={logo} style={logo2} /> :
                    <Image />
            }
         
            {
                page === 'profile' &&
                <Ionicons name="settings-sharp"
                    size={24}
                    color="black"
                    style={styles.icons11}
                    onPress={() => navigation.navigate('settings')}
                />
            }
        </View>

    )
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号