ReactNative Antd-Mobile OnPress&图标不起作用

时间:2018-04-14 15:50:07

标签: react-native antd antd-mobile

我对以下代码有两个问题, 该项目是ReactNative,并使用antd-mobile作为UI组件。

ReactNative:

"dependencies": {
"expo": "^26.0.0",
"react": "16.3.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-26.0.0.tar.gz",
"antd-mobile": "^2.1.8" }
  1. 图标无效icon={ <Icon type='home' /> }
  2. Tab.Item OnPress无效onPress={ () => this.onChangeTab.bind(this, 'category') }
  3. 从世博会终端,每次点击tab.item时都没有记录。

    import React, { Component } from 'react'
    import { View, Text } from 'react-native'
    import { TabBar, Icon } from 'antd-mobile'
    
    export class TabBarNav extends Component<any, any> {
        constructor(props) {
            super(props)
    
            this.state = {
                selectedTab: 'home'
            }
    
            console.log('selectedTab: ' + this.state.selectedTab)
        }
    
        renderContent(pageText: any) {
            return (
              <View style={{ flex: 1, alignItems: 'center', backgroundColor: 'white' }}>
                <Text style={{ margin: 50 }}>{pageText}</Text>
              </View>
            )
        }
        onChangeTab(tab) {
            console.log('Selected Tab: ' + tab)
            this.setState({
                selectedTab: tab
            })
        }
    
        render() {
            return (
                <View>
                    <TabBar unselectedTintColor='#949494'
                            tintColor='#33A3F4'
                            barTintColor='#ccc'
                    >
                        <TabBar.Item title='Home'
                                     key='home'
                                     selected={ this.state.selectedTab === 'home' }
                                     onPress={ () => this.onChangeTab.bind(this, 'home') } // This is not working
                                     icon={ <Icon type='home' /> } // This is not working
                        >
                            { this.renderContent('home') }
                        </TabBar.Item>
                        <TabBar.Item title='Category'
                                     key='category'
                                     selected={ this.state.selectedTab === 'category' }
                                     onPress={ () => this.onChangeTab.bind(this, 'category') }
                                     icon={ require('../../../artifacts/images/category.png')} // This is working
                        >
                            { this.renderContent('category') }
                        </TabBar.Item>
                    </TabBar>
                </View>
            )
        }
    }
    

1 个答案:

答案 0 :(得分:0)

从在线示例中可以清楚地看到,RN中不使用图标名称而是将unicode字符串用于非基本图标

尝试    &lt; Icon type = {'\ ue65e'} size = {20} /&gt;

希望有效!