Reactjs TouchableOpacity破坏样式
我正在尝试在React Native中创建导航。我制作了一个自定义组件,它由一个图像和一些文本组成。在应用Reactjs TouchableOpacity破坏样式,reactjs,react-native,react-navigation,Reactjs,React Native,React Navigation,我正在尝试在React Native中创建导航。我制作了一个自定义组件,它由一个图像和一些文本组成。在应用TouchableOpacity之前,样式工作正常。但当我把它应用到其中一个组件后,就会发生这种情况 我希望组件名称MojQR不会变形,但与其他组件一样。目前,如代码所示,TouchableOpacity仅应用于MojQR您使用的样式有问题。当您将尺寸(宽度、高度)设置为百分比时,它将从包裹它的零部件中获取百分比。这就是为什么当你添加touchablepacity时,它会弄乱所有的样式。
TouchableOpacity
之前,样式工作正常。但当我把它应用到其中一个组件后,就会发生这种情况
我希望组件名称MojQR不会变形,但与其他组件一样。目前,如代码所示,
TouchableOpacity
仅应用于MojQR您使用的样式有问题。当您将尺寸(宽度、高度)设置为百分比时,它将从包裹它的零部件中获取百分比。这就是为什么当你添加touchablepacity
时,它会弄乱所有的样式。您有两个选项,更改您正在使用的样式模式,或者进行简单的更改,可以从MenuItem
动态更改宽度,如下所示:
//App.js
<TouchableOpacity style={styles.touchableContainer} onPress={() => navigation.navigate('Details')}>
<MenuItem itemImage={require('./app/img/QR_code_for_mobile_English_Wikipedia.svg.png')} children='Moj QR' isWrapped={true} />
</TouchableOpacity>
...
//And the styling inside your style object
touchableContainer: {
width: '50%'
}
//App.js
导航。导航('Details')}>
...
//以及样式对象中的样式
可触摸容器:{
宽度:“50%”
}
在上面的代码中,添加将用于更改中样式的道具
//MenuItem.js
//change the wrapper for this one:
<View style={this.props.isWrapped ? {...styles.menuItem, width: '100%'} : styles.menuItem}>
...
//And add the flexGrow property to your styles.menuItem
menuItem: {
width: '50%',
height: '33.3333%',
padding: 10,
flexGrow: 1,
},
//MenuItem.js
//更改此文件的包装器:
...
//并将flexGrow属性添加到styles.menuItem
菜单项:{
宽度:“50%”,
身高:33.3333%,
填充:10,
flexGrow:1,
},