react native navigationOptions中不能获取this

static navigationOptions = ({ navigation, navigationOptions,screenProps }) => {
const { params } = navigation.state;
return {
tabBarVisible: true,
headerRight:(
<View>
<TouchableOpacity onPress={()=>navigation.state.params.navigatePress()}>
//this.order()
<View style={{marginRight:30/1536*width}}>
<Text style={styles.hadlesub}>点餐</Text>
</View>
</TouchableOpacity>
</View>
)
}
};

// 点击完成按钮
order = ()=> {
alert('haha');
}

componentDidMount() {
// 处理数据源
this.props.navigation.setParams({navigatePress:this.order})
}

方法二:

在最外部声明:
let that;
在class内部:
constructor(props){
        super(props);
        that = this;
}
在const * = StackNavigation({})中:
static navigationOptions = ({ navigation, navigationOptions,screenProps }) => {
const { params } = navigation.state;
return {
tabBarVisible: true,
headerRight:(
<View>
<TouchableOpacity onPress={() => that.order()}>
<View style={{marginRight:30/1536*width}}>
<Text style={styles.hadlesub}>点餐</Text>
</View>
</TouchableOpacity>
</View>
)
}
};

order = ()=> {
alert('haha');
}

转载于:https://www.cnblogs.com/yuxingxingstar/p/9804170.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值