代码之家  ›  专栏  ›  技术社区  ›  Cacoon

从函数React Native获取字符串结果

  •  2
  • Cacoon  · 技术社区  · 6 年前

    我创建了一个连接到redux并返回当前加载的 item's

    但当我试图从这个组件中获取标题时,它会出现以下错误:

    Error: `title` cannot be defined as a function in navigation options for `StockScreen` screen. 
    
    Try replacing the following:
    {
        title: ({ state }) => state...
    }
    
    with:
    ({ navigation }) => ({
        title: navigation.state...
    })
    

    这是我的组件:

    import { connect } from 'react-redux';
    
    let Title = () => {
        if(this.props.item === null || this.props.item === undefined, this.props.item === {}) {
            return '';
        }else{
            return this.props.item.TradeName;
        }
    }
    
    const mapStateToProps = state => ({
        item: state.stockItem.item,
    });
    
    export default ConnectedTitle = connect(mapStateToProps)(Title);
    

    const Stack = createStackNavigator(
        {
            Home: {
                screen: Tabs,
                navigationOptions: {
                    header: null,
                },
            },
            StockModal: {
                screen: StockModal,
                navigationOptions: {
                    header: null,
                },
            },
            StockScreen: {
                screen: StockScreen,
                navigationOptions: {
                    headerRight: (<ConnectedSaveButton/>),
                    title: ConnectedTitle,
                },
            },
        },
        {}
    );
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   needsleep    6 年前

    您正在将React组件传递给导航选项中的标题,而它应该是一个字符串。我认为你需要用头脑来实现你想要的

    StockScreen: {
        screen: StockScreen,
        navigationOptions: {
            headerRight: (<ConnectedSaveButton/>),
            headerTitle: (<ConnectedTitle />),
        },
    }
    

    标题

    可以用作headerTitle回退的字符串。此外,将用作tabBarLabel的回退(如果嵌套在 TabNavigator)或drawerLabel(如果嵌套在DrawerNavigator中)。

    标头使用的字符串、React元素或React组件。默认为场景标题。当使用组件时,它接收 在儿童中。