【问题标题】:hide/show clicking on another div隐藏/显示单击另一个 div
【发布时间】:2017-07-22 23:23:54
【问题描述】:

我想在单击按钮时隐藏/显示元素列表,但它不会隐藏它们,并且“shouldHide”的console.log等于未定义。

功能

showHideToggle(){
  this.setState({shouldHide: true});
}


    const { shouldHide} = this.props;

我想隐藏的div

     <div className={shouldHide ? 'hidden' : ''} >
        <WeatherInfo />
    </div>;

这是与我要隐藏的 div 分开的 div

<div onClick={(e) => {this.List(e);this.showHideToggle}}></div>

构造函数

this.state = {
  shouldHide: true
};

【问题讨论】:

  • 你确定你不打算改用const { shouldHide} = this.state; 吗?
  • 仍然不确定,即使我把 this.state 放了
  • 您是否在constructor 中定义了状态?也许也表明这一点
  • 我忘记在构造函数中放入状态。我现在应该如何处理

标签: javascript css reactjs ecmascript-6


【解决方案1】:

您的构造函数应该如下所示:

  constructor(props) {
    super(props);
    this.state = { shouldHide: true };
  }

你的 showhide 可能应该这样做,否则它不会切换并且永远是 true

showHideToggle(){
  this.setState({shouldHide: this.state.shouldHide ? false : true});
}

const { shouldHide} = this.props; 在您的渲染区域中应该是const { shouldHide} = this.state

&lt;div className={this.state.shouldHide ? 'hidden' : ''} &gt; 应该也能正常工作,因为它位于正确的区域。

【讨论】:

  • 酷它隐藏它。现在要删除课程,只需做相反的事情吗?
  • nop 它现在不删除它以删除类我需要重做它吗?
  • 你能在showHideToggle()的最后一行加一个console.log(this.state.shouldHide)吗?并告诉我每次单击时它会打印什么(只需两次就足够了)
  • 我认为this.setState({shouldHide: shouldHide ? false : true}); 应该是this.setState({shouldHide: this.state.shouldHide ? false : true});。让我知道它是否有任何改变
猜你喜欢
  • 2015-10-15
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
相关资源
最近更新 更多