如题,测试发现不支持visible属性... opacity也满足不了
方法1: 在render中根据条件是否渲染组建 {condition==true?<View/>:null};
方法2: 就像网页开发一样 父容器 overflow:"hidden" 子组件隐藏 left:-999;position:absolute;
一个简单示例:
'use strict';
import React, { Component } from 'react';
import { View, Text, TouchableOpacity, SafeAreaView } from 'react-native';
export default class Sample extends Component {
constructor(props) {
super(props);
this.state = {
show: false,
}
}
// 按压控制显示/隐藏菜单
_onPressListItem() {
this.setState((previousState) => {
return ({
show: !previousState.show,
})
});
}
render() {
let v = this.state.show ? <Text>待显示的内容</Text> : null; // 菜单
return (
<SafeAreaView>
<TouchableOpacity onPress={() => this._onPressListItem()}>
<View>
<Text>点我</Text>
</View>
</TouchableOpacity>
{v}
</SafeAreaView>
)
}
};
效果
点击文字
参考链接:
参考链接
10 回答11.1k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
rn中显示和隐藏是根据state状态值判断重新渲染,切勿用web端思维去想这个问题,opacity只是透明度,位置元素都还在,只是看不见而已,有区别