我想躲在我的反应本地根据标志值的文本/视图。但是,它没有隐瞒。
这里是我的代码
Class.js文件
componentDidMount() {
this.setState({
isHidden: true
});
}
constructor(props) {
super(props);
this.state = {
isHidden: false,
};
}
render() {
console.log('renderer');
const { isHidden } = this.state;
return (
<View style={styles.container}>
<View style={styles.container}>
//some other objects showing
<Text style={styles.Text} hide={isHidden}>
Date is Jan 02
</Text>
//some other objects showing
<Text style={styles.Text} hide={isHidden}>
</View>
</View>
);
}
}
但是,它不是躲在连标志值为true。我失去了一些东西在这里?
我不是一个阵营原生开发,但是,从looks of the documentation的Text
组件没有一个hide
道具。如果你是从标准接近这一点作出反应的视图,你要么添加相应的功能,以您的组件(我想你不能这样做),或者改变您的渲染方法:
class Test extends Component {
render() {
return (
{!this.state.isHidden && <Text style={styles.text}>Exciting copy...</Text>}
)
}
}
试试这个,如果这有助于。反应没有任何隐藏属性,所以你必须condtionally渲染是否隐藏变量的基础上的文本字段
(!isHidden)?<Text style={styles.Text}>Date is Jan 02</Text>: ''
反应母语Text没有隐藏道具。你可以得到预期的效果这样{!this.state.isHidden}<Text>....</Text>
我接过来一看你的代码,我有一些言论。
它劝总是
Prevent usage of setState in componentDidMount (no-did-mount-set-state)
。调用的setState()在这个方法将触发额外的渲染,但它肯定具有相同的滴答期间冲洗。这保证了即使渲染()将被调用两次在这种情况下,用户不会看到中间状态。
所以它不会造成明显的副作用。
使用这种模式谨慎,因为它通常会导致性能问题。所以,除非你是做
server-rendering
,任何需要在浏览器环境必须componentDidMount
去,因为运行仅客户端,但componentWillMount
客户端和服务器上运行。