使用嵌套在 Touchable Opacity 中的图像进行导航
Navigation using images nested inside Touchable Opacity
背景:
我在 React Native 中为我的应用程序设计了自定义页脚,我设置了一些图像作为图标。我试图让他们在触摸时重定向到应用程序的其他页面。
我试过的
我一直在尝试使用嵌套在 TouchableOpacity 组件中的相同图像,让它们使用反应导航重定向到其他页面。
这是我的代码:
export class Footer extends React.Component {
render (){
return (
<View style = { styles.footStyle } >
<TouchableOpacity onPress={ () => navigation.push('Home')} >
<Image
style = { styles.iconStyle }
source = {require('./img/home.png')}/>
</TouchableOpacity>
<TouchableOpacity onPress={ () => navigation.push('Favoritos')} >
<Image
style = { styles.iconStyle }
source = {require('./img/heart.png')}/>
</TouchableOpacity>
<TouchableOpacity onPress={ () => navigation.push('Search')} >
<Image
style = { styles.iconStyle }
source = {require('./img/search.png')}/>
</TouchableOpacity>
<TouchableOpacity onPress={ () => navigation.push('Notifications')} >
<Image
style = { styles.iconStyle }
source = {require('./img/bell.png')}/>
</TouchableOpacity>
<TouchableOpacity onPress={ () => navigation.push('Help')} >
<Image
style = { styles.iconStyle }
source = {require('./img/circle.png')}/>
</TouchableOpacity>
</View>
)
}
}
const styles = StyleSheet.create({
footStyle: {
paddingBottom: 0,
paddingRight: 10,
backgroundColor: '#ffffff',
flex: 0.4,
flexDirection: 'row',
borderTopWidth: 1,
borderTopColor: '#000000'
},
iconStyle: {
flex: 0.2,
height: undefined,
width: undefined
}
})
问题
当我尝试 运行 expo 中的应用程序时,图像根本无法渲染。我得到没有任何内容的空白页脚。我试过触摸页脚以查看图像是否未呈现,但“按钮”确实起作用了,但没有起作用。
问题
如何将图像嵌套在 TouchableOpacity 组件中?甚至可以将此方法与 React Navigation 一起使用吗?
非常感谢!
要使图像组件正常工作,您应该在样式中提供高度和宽度。
此处您将其设置为未定义
试试像
iconStyle: {
flex: 0.2,
height: 100,
width: 100
}
同样在导航上,您必须将导航道具传递给页脚。由于它是 class,您应该以 this.props.navigation.navigate()
访问它
由于您的集成页脚的代码不在这里,因此很难评论如何将 prop 传递给页脚。
背景:
我在 React Native 中为我的应用程序设计了自定义页脚,我设置了一些图像作为图标。我试图让他们在触摸时重定向到应用程序的其他页面。
我试过的
我一直在尝试使用嵌套在 TouchableOpacity 组件中的相同图像,让它们使用反应导航重定向到其他页面。 这是我的代码:
export class Footer extends React.Component {
render (){
return (
<View style = { styles.footStyle } >
<TouchableOpacity onPress={ () => navigation.push('Home')} >
<Image
style = { styles.iconStyle }
source = {require('./img/home.png')}/>
</TouchableOpacity>
<TouchableOpacity onPress={ () => navigation.push('Favoritos')} >
<Image
style = { styles.iconStyle }
source = {require('./img/heart.png')}/>
</TouchableOpacity>
<TouchableOpacity onPress={ () => navigation.push('Search')} >
<Image
style = { styles.iconStyle }
source = {require('./img/search.png')}/>
</TouchableOpacity>
<TouchableOpacity onPress={ () => navigation.push('Notifications')} >
<Image
style = { styles.iconStyle }
source = {require('./img/bell.png')}/>
</TouchableOpacity>
<TouchableOpacity onPress={ () => navigation.push('Help')} >
<Image
style = { styles.iconStyle }
source = {require('./img/circle.png')}/>
</TouchableOpacity>
</View>
)
}
}
const styles = StyleSheet.create({
footStyle: {
paddingBottom: 0,
paddingRight: 10,
backgroundColor: '#ffffff',
flex: 0.4,
flexDirection: 'row',
borderTopWidth: 1,
borderTopColor: '#000000'
},
iconStyle: {
flex: 0.2,
height: undefined,
width: undefined
}
})
问题
当我尝试 运行 expo 中的应用程序时,图像根本无法渲染。我得到没有任何内容的空白页脚。我试过触摸页脚以查看图像是否未呈现,但“按钮”确实起作用了,但没有起作用。
问题
如何将图像嵌套在 TouchableOpacity 组件中?甚至可以将此方法与 React Navigation 一起使用吗?
非常感谢!
要使图像组件正常工作,您应该在样式中提供高度和宽度。
此处您将其设置为未定义 试试像
iconStyle: {
flex: 0.2,
height: 100,
width: 100
}
同样在导航上,您必须将导航道具传递给页脚。由于它是 class,您应该以 this.props.navigation.navigate()
由于您的集成页脚的代码不在这里,因此很难评论如何将 prop 传递给页脚。