当前位置: 首页 > 知识库问答 >
问题:

尝试创建带有自定义图标的TabBarIOS时发生不变冲突错误

施学
2023-03-14

我在这里要完成的基本任务是合并这两个教程(x)(x),以便创建一个具有自定义图标的简单TabBar。我正在尝试使用来自react-nily-vport-icons库的图标,我已经将其添加到我的节点模块中。然而,我遇到了一个障碍:

不变违反:元素类型无效:预期为字符串(用于内置

检查ProfileTabs的渲染方法。

此错误位于:in RCTTabBar(位于TabBarIOS.ios.js:82)

在TabBarIOS(App.js:19)

在ProfileTabs中(位于App.js:80)

在ProfileApp中(位于registerRotComponent.js:35)

在RootErrBoundary(在注册RootComponent.js:34)

等等。以下是相关代码:

import React, { Component } from 'react';
import { AppRegistry, Image, StyleSheet, TabBarIOS, Text, View } from 'react-native';
import Icon from 'react-native-vector-icons/Ionicons';

var Profile = require('./profile');
var Repositories = require('./repositories');
var Following = require('./following');
var Followers = require('./followers');

class ProfileTabs extends Component {
    constructor(props) {
        super(props);
        this.state = {
            selectedTab: 'profile'
        };
    }
    render() {
        return (
            <TabBarIOS
                selectedTab={this.state.selectedTab}>
                <Icon.TabBarIOS
                    selected={this.state.selectedTab === 'profile'}
                    title="Profile"
                    iconName='ios-home-outline'
                    onPress={() => {
                        this.setState({
                            selectedTab: 'profile',
                        });
                    }}>
                        <Profile/>
                </Icon.TabBarIOS>
                <Icon.TabBarIOS
                    selected={this.state.selectedTab === 'repositories'}
                    title='Repos'
                    iconName='ios-home-outline'
                    onPress={() => {
                        this.setState({
                            selectedTab: 'repositories',
                        });
                    }}>
                        <Repositories/>
                </Icon.TabBarIOS>
                <Icon.TabBarIOS
                    selected={this.state.selectedTab === 'following'}
                    title='Following'
                    iconName='ios-home-outline'
                    onPress={() => {
                        this.setState({
                            selectedTab: 'following',
                        });
                    }}>
                    <Following/>
                </Icon.TabBarIOS>
                <Icon.TabBarIOS
                    selected={this.state.selectedTab === 'followers'}
                    title='Followers'
                    iconName='ios-home-outline'
                    onPress={() => {
                        this.setState({
                            selectedTab: 'followers',
                        });
                    }}>
                    <Followers/>
                </Icon.TabBarIOS>
            </TabBarIOS>
        )
    }
}

export default class ProfileApp extends Component {
    render() {
        let pic = {
            uri: 'https://news.artnet.com/app/news-upload/2015/08/mona-lisa_2-e1440166499927.jpg'
        };
        return (
            <View style={styles.basic_info}>
                <Image source={pic} style ={styles.circle_image}/>
                <Text style={styles.name_text}>LM</Text>
            </View>,
            <ProfileTabs/>
        );
    }
}

我在这里尝试了一些修复,但对于那里的许多答案,我不确定给定解决方案背后的原因,并且对如何将其应用于我自己的代码感到困惑。如果我用TabBarIOS。项目元素而不是图标。TabBarIos元素,并使用系统图标而不是库图标,一切正常,因此我怀疑问题在于如何导入/使用react本机向量图标。

如果有更简单的方法来完成这一切,我也愿意重写我的代码。

共有1个答案

华乐逸
2023-03-14

正如我onicons.js的库代码中提到的,没有为TabBarIOS命名的导出,但是为TabBarItemIOSTabBarItem命名。

因此,您需要使用它作为

  <TabBarIOS>
    <Icon.TabBarItemIOS
      title="Home"
      iconName="ios-home"
      selected={this.state.selectedTab === 'home'}
      onPress={() => {
        this.setState({
          selectedTab: 'home',
        });
      }}
    >
      {this.renderContent('#414A8C', 'Home')}
    </Icon.TabBarItemIOS>

即替换图标。带有图标的TabBarIOS。TabBarItemIOS

有关更多详细信息,请查看此处的示例

 类似资料:
  • 问题内容: 我以下列方式使用ModelMapper: 我有一些转换器类是Spring组件,它们注册了自定义ModelMapper映射 但是当Spring启动时出现以下错误,因为配置函数被调用并且源为null。 那应该如何工作? 我使用错了吗? 像这样声明bean,并且Foo和FooModel不是最终的 重要编辑 实际上,即使当我在主类中的函数中显式创建映射时,我也会得到相同的NullPointer

  • 当我在phoenix中登录sqlline.py或试图通过API在phoenix中创建表时,我会遇到一个异常。 由于我对phenix的知识有限,我无法弄清楚为什么phoenix在创建System.Catalog表之前就要检查它。 StackTrace: *4/11/18 06:07:18警告客户端。HConnectionManager$HConnectionImplementation:预取元表时遇

  • 我希望向sbt添加一个自定义源生成器,并将其与scalapb(Scala协议缓冲区生成器)一起使用。每一个都独立工作。然而,当两者结合在一起时,项目在清理后第一次编译失败。如果我再次运行compile,它就会成功。 错误消息: 要再现此错误,您需要在src/main/protobuf中至少有一个proto文件。 我的自定义任务和scalapb这两个源生成器会发生冲突,这让我感到困惑。它们不应该都写

  • 我试图获得一个带有自定义图标的JFrame,但没有任何效果。下面是我现在看到的Java 11:

  • 我是MPAndroidChart的新手,我想在LineChart的XAxis上实时显示时间。我只想显示传入数据的最后10秒,如下图所示。我的采样频率为25Hz,因此我需要显示250个值才能记录10秒。 但是,我真的不知道该怎么做。我想我必须使用IAxisValueFormatter。 目前,我的传入值被添加到数据集,如下所示: 但也许我需要这样做: 然后创建一个格式化程序,将X值转换为类似“xxx

  • 默认情况下,Navicat Monitor 从受监控的实例收集一组预设的服务器指标。你可能想要添加自己的查询,以收集特定实例的一些自定义性能指标,并在指标值超过某些阈值和持续时间时接收有关自定义数据的警报。若要配置自定义指标,请前往“配置”->“自定义指标”。 创建自定义指标和警报 在自定义指标页面中,点击“+ 新建自定义指标”。 【步骤一】输入自定义指标的定义: 指标名 输入自定义指标的名。 描