如何通过另一个组件中的操作将类名切换到组件?

时间:2017-12-26 12:44:49

标签: reactjs react-native

我对新的一天做出反应非常新,所以如果这是一个愚蠢的问题,我道歉,

我正在尝试在按下按钮时将css样式的类名切换为div,按钮是页面中的一个单独组件,我不知道如何使用jquery连接两个原来我使用的jquery像这样的东西:

componentWillMount() {
   $(document).ready(function() {
       var header = $('header'),
           btn = $('button.toggle-nav');

       btn.on('click', function() {
           header.toggleClass('active');
       });
   });
}

但我意识到它没有在第一次加载页面时运行。非常感谢所有帮助!

我已经取出了按钮组件,我现在有类似的东西,

<header className="contain active">

  <Navigation/>

  <button className="toggle-nav">
      <span className="fa fa-bookmark-o" aria-hidden="true"></span>
  </button>

  <div className="divider"></div>

澄清我正试图让按钮切换标题的“有效”类名

1 个答案:

答案 0 :(得分:0)

您希望了解标题是否处于活动状态。它看起来像这样。

class Test extends React.Component {
  constructor(...args) {
    super(...args)
    this.state = { active: false }
    this.onButtonClick = this.onButtonClick.bind(this)
  }

  onButtonClick() {
    this.setState((state) => ({ active: !state.active }))
  }

  render() {
    return (
      <>
        <header className={`contain ${this.state.active ? 'active' : ''}`>
        <Navigation/>
        <button className="toggle-nav" onClick={this.onButtonClick}>
          <span className="fa fa-bookmark-o" aria-hidden="true"></span>
        </button>
        <div className="divider"></div>
      </>
    )

  }
}

该按钮被传递onClick回调,该回调切换活动状态。作为状态更改的结果,组件将重新呈现,并且将根据状态值有条件地呈现活动类名称。