使用OnPress时如何解决“未定义不是对象”

时间:2019-08-21 08:10:49

标签: react-native

我在抽屉导航中的屏幕上添加了“呼叫”按钮。 但是,即使我绑定了“ this”以保持其上下文,当我按下“呼叫”按钮时,也会收到“未定义不是对象(评估_this6.App.dialCall。 这是相关的代码:

    render() {  
    return (  
        <View style={{ flex: 1, backgroundColor: "black", alignItems: 
  'center', justifyContent: 'center' }}>  


            <Text style={{backgroundColor: "black", fontSize: 16, color: 
         "white"}}>Dour services are available 24 hours a day, so you can 
    truly rely on us.

 We will match or try and beat any price. 

                  </Text>
                   <Button  title='Call' onPress={() => 
       this.App.dialCall.bind(this)}
                 /> 

               </View>  
                ); 

(位于抽屉导航中的主屏幕上。 我的函数在主类中:

  export default class App extends Component {
     dialCall = () => {

         let phoneNumber = '';

          if (Platform.OS === 'android') {
           phoneNumber = 'tel:${1234567890}';
          }
         else {
           phoneNumber = 'telprompt:${1234567890}';
         }

          Linking.openURL(phoneNumber);
        };

      render() {  
         return <AppContainer />;  
      }  
       }

1 个答案:

答案 0 :(得分:0)

如果您要使用不同类的函数/方法,则必须调用该子类,比如说父类中的类A,比如说它的构造函数中的类B作为对象。

constructor(props) {
    super(props);
this.objectOfChildClass = new App();
    this.state = {
    };
  }

完成此操作后,使用this.objectOfChildClass.functionName

此外,当您已经使用胖箭头功能时,不需要绑定功能。它的作用与绑定相同。

Refer here