文/查看是不是躲在反应过来本土

问题描述 投票:0回答:3

我想躲在我的反应本地根据标志值的文本/视图。但是,它没有隐瞒。

这里是我的代码

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。我失去了一些东西在这里?

reactjs react-native text view show-hide
3个回答
3
投票

我不是一个阵营原生开发,但是,从looks of the documentationText组件没有一个hide道具。如果你是从标准接近这一点作出反应的视图,你要么添加相应的功能,以您的组件(我想你不能这样做),或者改变您的渲染方法:

class Test extends Component {
    render() {
        return (
            {!this.state.isHidden && <Text style={styles.text}>Exciting copy...</Text>}
        )
    }
}

0
投票

试试这个,如果这有助于。反应没有任何隐藏属性,所以你必须condtionally渲染是否隐藏变量的基础上的文本字段

 (!isHidden)?<Text style={styles.Text}>Date is Jan 02</Text>: ''

0
投票

反应母语Text没有隐藏道具。你可以得到预期的效果这样{!this.state.isHidden}<Text>....</Text>

我接过来一看你的代码,我有一些言论。

它劝总是Prevent usage of setState in componentDidMount (no-did-mount-set-state)。调用的setState()在这个方法将触发额外的渲染,但它肯定具有相同的滴答期间冲洗。这保证了即使渲染()将被调用两次在这种情况下,用户不会看到中间状态。

所以它不会造成明显的副作用。

使用这种模式谨慎,因为它通常会导致性能问题。所以,除非你是做server-rendering,任何需要在浏览器环境必须componentDidMount去,因为运行仅客户端,但componentWillMount客户端和服务器上运行。

© www.soinside.com 2019 - 2024. All rights reserved.