为什么NavigationOptions => headerLeft中具有onPress = {action}的按钮不起作用?反应本机

时间:2019-03-06 19:02:50

标签: react-native

我在React Native中工作,实际上我试图实现一种自定义侧边菜单以避免DrawerMenu实现,我试图仅在headerLeft上添加一个图标,但是它不起作用,按下时没有任何作用。

class HomeScreen extends React.Component {
    static navigationOptions = {
        headerTitle: ('',
            <Image style={{ width: 150, height: 40 }}
                source={require('./images/logo.png')}
            />
        ),
        headerLeft: (
            <TouchableHighlight onPress={this._logout}>
                <Image style={{ width: 40, height: 40 }}
                    source={require('./images/hamburger_icon.png')}
                />
            </TouchableHighlight>
        ),
    }
}

当我尝试将按钮放置在mapView内时相同。

<View style={{ flex: 1 }}>

    <MapView
        ...
    >
        <Button onPress={this._logout} title="Logout" />
    </MapView>

</View >

但是在视图内部实现的相同按钮效果很好。

<View style={{ flex: 1 }}>
     <Button onPress={this._logout} title="Logout" />
    <MapView
        ...
    >
        ...
    </MapView>

</View >

我看到了使用某些组件作为DidMount的解决方案,但我不确定如何实现。

谢谢。

2 个答案:

答案 0 :(得分:1)

您正在尝试以静态方法访问select l.*, s.* from Loan l join Soa s on s.employeeid = l.employeeid where s.TransactionDate <= (select max(s2.TransactionDate) from Soa s2 where s2.employeeid = l.employeeid and s2.TransactionDate <= l.LoanApplicationDate ); 。不幸的是,您发现这行不通。

可以将函数传递给标题。您可以阅读有关将函数传递到标头组件here

的更多信息。

这很简单。

  1. 具有注销功能的componentDidMount this._logout
  2. 在您的setParams中,使用headerLeft属性访问您的函数。
  3. 请注意我们如何访问getParam
  4. 中的导航道具

这里是一个例子:

navigationOptions

答案 1 :(得分:0)

作为answer

的附加帮助

如果在onPress事件中使用 this。,则可以使用:

 this.props.navigation.setParams({ logout: this._logout.bind(this) });