我在使用react native onPress功能时遇到问题.onPress应该只在touch 事件(我想)触发时才起作用,也就是当我按下屏幕上的按钮时.但是,当调用render函数时,onPress似乎会自动触发.当我试图手动按下时,它不起作用.

  import React, { Component } from 'react';
  import { PropTypes, Text, View ,Alert } from 'react-native';
  import { Button } from 'react-native-material-design';

export default class Home extends Component {
  
  render() {
    return (
          <View style={{flex:1}}>
            <Button value="Contacts" raised={true} onPress={this.handleRoute('x')} />
            <Button value="Contacts" raised={true} onPress={this.handleRoute('y')} />
            <Button value="Contacts" raised={true} onPress={this.handleRoute('z')} />
          </View>
          );
}
handleRoute(route){
  alert(route) // >> x , y, z 
    }
}

  module.exports = Home;

我错过了什么?我的分配方式是否有问题,或者这是一个错误?

Video

推荐答案

试着改变

onPress={this.handleRoute('x')}//在这种情况下,一旦渲染发生,就会调用handleRoute函数

onPress={() => this.handleRoute.bind('x')} //in this case handleRoute doesn't called as soon as render happen

React-native相关问答推荐

在react native expo中从SDK 49升级到51后,应用程序使用堆栈导航崩溃

收到错误Constants.platform.ios.model已被弃用,以支持 expo-device

React Native:无法将具有 resizeMode包含的图像定位在父组件的 flex-end

使用动画标记时如何优化react 本机 map 性能

如何在 navigation.js 文件中的 react-navigation 中当前路由名称?

react native :navigationOptions 中的标题样式不起作用

如何获取 React Native 应用程序的崩溃日志(log)?

React Native 用于低互联网带宽的小型 apk APP应用

如何在 Crashlytics (Fabrics) 中有效地对非致命异常进行分组?

未找到 xcode 'boost/config/user.hpp' 文件

使用直接在 Windows 中运行的模拟器在 WSL 中运行 React Native

如何从 stack.navigation 外部的组件中使用 navigation.navigate

错误:无法解析模块`buffer`

如何在 Text ReactNative 中包含 TouchableOpacity

XCode AppIcon 基于方案

React Native vs Swift/Objective-C/Java Native

将 React Native 升级到 0.60-RC2 后找不到库libjsc.so

Unexpected token on "export default const"

React Native onLayout 与 React Hooks

我将如何根据百分比为按钮的宽度设置动画,并且它的背景 colored颜色 也是如此?