- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图调用一个在单击 onPress 时使用 props 传递的函数。下面是我的自定义组件。
DrawerItem.js
import React from 'react';
import {
View,
Text,
StyleSheet,
Image,
TouchableOpacity
} from 'react-native';
import FastImage from 'react-native-fast-image';
const DrawerItem = (props) => (
<View style={styles.drawerItemContainer}>
<TouchableOpacity onPress={props.onPress}>
<FastImage source={props.icon} style={styles.icon} />
</TouchableOpacity>
<TouchableOpacity onPress={props.onPress}>
<Text style={styles.drawerItemText} >{props.title}</Text>
</TouchableOpacity>
</View>
);
export default DrawerItem;
下面是我使用 DrawerItem 组件的自定义组件:
SideMenu.js:
import PropTypes from 'prop-types';
import React, {Component} from 'react';
import {NavigationActions, SafeAreaView} from 'react-navigation';
import {ScrollView, Text, View, StyleSheet,ImageBackground, StatusBar, TouchableOpacity} from 'react-native';
import FastImage from 'react-native-fast-image';
import DrawerItem from './DrawerItem';
class SideMenu extends Component {
//This is the function which is not being called
navigateToScreen = (route) => () => {
console.log('inside navigate screen');
const navigateAction = NavigationActions.navigate({
routeName: route
});
this.props.navigation.dispatch(navigateAction);
}
render () {
return (
<View style={styles.container}>
<ImageBackground source={require('../../resources/images/drawer_background.png')} style={{width: '100%', height: '100%'}}>
<View style={styles.drawer}>
<View style={styles.header}>
<FastImage style={styles.profilePicture} source={{uri: 'https://assets.entrepreneur.com/content/3x2/1300/20150406145944-dos-donts-taking-perfect-linkedin-profile-picture-selfie-mobile-camera-2.jpeg'}}/>
<View style={styles.headerDetails}>
<Text style={styles.displayName}>Jen William</Text>
<Text style={styles.email}>jen@williams.com</Text>
</View>
</View>
<View style={styles.drawerBody}>
//Below is how I am pasing navigateToScreen function
<DrawerItem onPress={() => this.navigateToScreen('Profile')} icon={require('../../resources/images/myprofile_icon.png')} title='My Profile'/>
<DrawerItem icon={require('../../resources/images/cardrequest_icon.png')} title='Card Requests'/>
<DrawerItem icon={require('../../resources/images/search_icon.png')} title='Search'/>
<DrawerItem icon={require('../../resources/images/add_icon.png')} title='My Cards'/>
<DrawerItem icon={require('../../resources/images/signout_icon.png')} title='Sign Out'/>
</View>
</View>
</ImageBackground>
</View>
);
}
}
SideMenu.propTypes = {
navigation: PropTypes.object
};
export default SideMenu;
Note: The props are being passed for sure as other values being passed are accessible
有人可以告诉我我做错了什么吗?
最佳答案
这可能是一个有约束力的问题。
而不是
onPress={() => this.navigateToScreen('Profile')}
尝试:
onPress={this.navigateToScreen('Profile')}
关于javascript - TouchableOpacity OnPress 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48487410/
我有以下 flatlist 渲染方法,在点击列表项时,它将调用 this._onPress 方法: render() { return (
我正在使用很棒的组件来自Native Base 。 import React, { Component } from 'react' import {View, Picker, Text, Butto
我正在做一个更大的项目,但不知道为什么这个小部分让我花了将近一整天的时间。 import 'package:flutter/material.dart'; void main() { runApp
我刚刚将我的 react-native 项目移植到 typescript 并且有一个关于函数作为 Prop 的问题 我通过: this.props.navigation.navigate("Card
我已经实现了教程中的 React Navigation 示例 https://reactnavigation.org/docs/intro/而且效果很好。 navigate('Chat')} t
我从RaisedButton创建了一个扩展类。传递onPressed参数时,该类拒绝说驱动器为空。 类 class VecRaisedButton extends RaisedButton { V
我正在制作简单的自定义文本按钮 SizedBox( height: 40, child: Material( color: Colors.transparent
onPressed 错误尝试传递 onPressed 函数但出现错误。 错误 - 无法将参数类型“Function”分配给参数类型“void Function()?”。 class CircleBut
onPressed 错误尝试传递 onPressed 函数但出现错误。 错误 - 无法将参数类型“Function”分配给参数类型“void Function()?”。 class CircleBut
RESET 我在上面看到的代码中使用了可触摸的不透明度。当我更改状态 working_pressure 但不按下按钮时,控制台会记录状态。问题是按下按钮时,根本没有记录任何内容。 我的最
我的应用程序中有这个聊天屏幕,我在旁边的 button 及其 onPress() 的帮助下发送消息, 代码如下: import React, { Component } from "react"; i
正在学习native React并学习更多关于javascript的知识,所以我仍然不明白关于它的行为的很多事情。我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件
我正在尝试为我使用 Flutter 创建的游戏实现 onPressed 函数。如果我使用 RaisedButton 然后 onPressed 工作,但因为我想要一个图像然后我必须使用 Material
我需要在下面的图标上插入 onpressed() 函数(导航器推送到其他页面): Column buildButtonColumn(IconData icon, String label) {
我有这个容器: new Container( width: 500.0, padding: new EdgeInsets.fromLTRB(20.0, 40.0, 20.0, 40
我正在尝试使用 onPressed 切换到 Flutter 项目中的不同屏幕,但它没有生成任何结果,不确定是什么原因。 这是主屏幕页面:
我的平面列表中有一些按钮,如下所示 const renderItem = ({ item }) => ; const Item = ({ name, slug }) => { return
我在 React Native 上处理 onPress 事件。第一次,我写了那个代码: =this.props.minimum) ? this.props.onDecrement
我如何实现这种效果?单击日期后,我想扩展我的 AppBar。 最佳答案 最简单的方法是设置一个变量,然后改变 bottom 的高度。小部件。 Scaffold( appBar: AppBa
我已经使用 Flutter 大约 8 周了。 太棒了,毫无疑问。 然而,自从我开始以来,一直有一些问题困扰着我,那就是为什么有些小部件有 onTap方法而其他人有 onPressed ?谷歌无法给我任
我是一名优秀的程序员,十分优秀!