React Native:组件上的 onPress 不起作用

Posted

技术标签:

【中文标题】React Native:组件上的 onPress 不起作用【英文标题】:React Native: onPress on component doesn't function 【发布时间】:2016-11-16 15:35:01 【问题描述】:

所以我在我的 ReactJS 应用程序中使用 react-native-router-flux 进行导航,但我在将它与组件一起使用时遇到了困难。

例如下面的代码 sn-p 在点击链接时通过推送下一页完美地工作。

export default class MainMenuPage extends Component 
  render() 
    return (
      <View>
        <Text>Main Menu</Text>
        <TouchableOpacity onPress=Actions.bookmarksPage>
          <Text>Bookmarks</Text>
        </TouchableOpacity>
        <TouchableOpacity onPress=Actions.settingsPage>
          <Text>Settings</Text>
        </TouchableOpacity>
      </View>
    );
  

虽然下面的代码 sn -p 当你按下链接时没有任何反应。

export default class MainMenuPage extends Component 
  render() 
    return (
      <View>
        <Text>Main Menu</Text>
        <MenuButton name="Bookmarks" onPress=Actions.bookmarksPage />
        <MenuButton name="Settings" onPress=Actions.settingsPage />
      </View>
    );
  


class MenuButton extends Component 
  render() 
    return(
      <TouchableOpacity>
        <Text>this.props.name</Text>
      </TouchableOpacity>
    );
  

显然第二个代码 sn-p 更干净。

【问题讨论】:

【参考方案1】:

您必须将onPress 属性传递给TouchableOpacity

class MenuButton extends Component 
  render() 
    return(
      <TouchableOpacity onPress=this.props.onPress>
        <Text>this.props.name</Text>
      </TouchableOpacity>
    );
  

【讨论】:

以上是关于React Native:组件上的 onPress 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

返回 JSX 组件 onPress react-native

(React Native) onPress 不适用于 Text 组件

Wix React-Native-Navigation:自定义组件按钮的 onPress

Expo / React Native WebView,动画中的onPress事件在Android上不起作用

在 React Native 中渲染组件 onPress(TouchableOpacity/Button)

React Native 小记解决嵌套内的 TouchableHighlightTouchableOpacity 等组件onPress误触发