javascript - 在 React 中显示/隐藏子组件

标签 javascript reactjs

我在 React 渲染函数中有以下代码:

<div>
    <InnerBox>
        <div>Box 1</div>
        <HiddenBox />
    </InnerBox>

    <InnerBox>
        <div>Box 2</div>
        <HiddenBox />
    </InnerBox>

    <InnerBox>
        <div>Box 3</div>
        <HiddenBox />
    </InnerBox>
</div>

我想要 <HiddenBox /> 中的每一个元素被隐藏直到 <InnerBox>单击元素。 <InnerBox> 的任何其他子元素应始终显示。

我的 InnerBox 目前有以下功能类:

handleClick(){
    this.setState({
        button_state: "clicked"
    })
}

还有我的 InnerBox 的渲染函数类看起来像这样:

return (
    <div onClick={this.handleClick.bind(this)}>{this.props.children}</div>
)

但是,我有点困惑代码到底要在哪里切换 HiddenBox 的显示。特定的元素InnerBox被点击了。

我该如何去做呢?

最佳答案

切换隐藏和显示。

export default class InnerBox extends React.Component {
  state = {
    buttonClicked: false
  };
  handleClick = () => {
    this.setState({
      buttonClicked: !this.state.buttonClicked
    });
  };
  render() {
    return (
      <div onClick={this.handleClick}>
        {this.props.children}
        {this.state.buttonClicked && <HiddenBox />}
      </div>
    );
  }
}

关于javascript - 在 React 中显示/隐藏子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52999329/

相关文章:

javascript - PhoneGap + child 浏览器 + 错误

javascript - 反向传播训练卡住了

javascript - 选择选择下拉值时添加迄今为止的天数 JQuery/JS

javascript - 如何将值从 <a> ( anchor 标记)传递到 React js 中的函数?

javascript - 语法错误 : Unexpected token import Webpack 2 Babel 6 Reactjs

javascript - 使用 HTML5 本地存储

javascript - 如何使用 {flip : false}? 选择退出 'rtl'

javascript - React Native 中的持久状态 : setting state from AsyncStorage doesn't update component

reactjs - 以编程方式下载文件,同时使用 Redux 向用户提供反馈

javascript - 谷歌地图V3绘制多边形并打开InfoWindow