React Native Android按钮onPress事件无响应问题求助
问题分析与解决
问题根源
你的代码里Button组件的onPress属性写了logIt(),这会在组件渲染时就立即执行logIt函数,所以启动项目后控制台自动打印了Foobar。而点击按钮时,onPress实际拿到的是logIt()执行后的返回值(这里是undefined),自然不会触发任何操作。
修复方案
你需要把函数引用传递给onPress,而不是执行函数后的结果,有两种写法:
- 直接传递函数名(无参数时推荐):
onPress={logIt}
- 用箭头函数包裹(需要传递参数时使用):
onPress={() => logIt()}
修改后的完整代码
/** * Sample React Native App * https://github.com/facebook/react-native * * @format */ import React from 'react'; import { SafeAreaView, Button } from 'react-native'; function logIt(){ console.log("Foobar"); } function App(): JSX.Element { return ( <SafeAreaView> <Button title="Logit" accessibilityLabel="log it" onPress={logIt} color="blue" /> </SafeAreaView> ); } export default App;
内容的提问来源于stack exchange,提问作者n.r.
相关产品推荐
相关产品推荐

