2017-08-09 177 views
0

你好我試圖綁定我的導航器右鍵中的功能,反應原生反應導航標題按鈕事件

但它會給出錯誤。

這是我的代碼:

import React, { Component } from 'react'; 

import Icon from 'react-native-vector-icons/FontAwesome'; 
import Modal from 'react-native-modalbox'; 
import { StackNavigator } from 'react-navigation'; 



import { 
    Text, 
    View, 
    Alert, 
    StyleSheet, 
    TextInput, 
    Button, 
    TouchableHighlight 
} from 'react-native'; 

import NewsTab from './tabs/news-tab'; 
import CustomTabBar from './tabs/custom-tab-bar'; 

export default class MainPage extends Component { 




    constructor(props) { 
     super(props); 

    } 
    alertMe(){ 
     Alert.alert("sss"); 

    } 

    static navigationOptions = { 
     title: 'Anasayfa', 
     headerRight: 
       (<TouchableHighlight onPress={this.alertMe.bind(this)} > 
       <Text>asd</Text> 
       </TouchableHighlight>) 

    }; 

    render() { 
     return(

      <View> 

      </View> 

     ); 
    } 
} 

而得到錯誤是這樣的:

不確定是不是(評估 'this.alertMe.bind')

當我使用此方法的對象在渲染功能它工作得很好,但在NavigatonOption我無法得到處理它。我能爲這個問題做些什麼。

回答

7

你應該在你使用這個功能的導航儀

static navigationOptions = ({ navigation }) => { 
    const { params = {} } = navigation.state; 
    return { 
     title: '[ Admin ]', 
     headerTitleStyle :{color:'#fff'}, 
     headerStyle: {backgroundColor:'#3c3c3c'}, 
     headerRight: <Icon style={{ marginLeft:15,color:'#fff' }} name={'bars'} size={25} onPress={() => params.handleSave()} /> 
    }; 
}; 

使用componentwillmount以便它可以代表你在哪裏調用函數。

componentDidMount() { 
this.props.navigation.setParams({ handleSave: this._saveDetails }); 
} 

,然後你可以,如果你正在使用這個**

+1

你是一個生命的救星寫你的邏輯在功能

_saveDetails() { **write you logic here for ** } 

**無需綁定功能。它將完全奏效。 –