单击另一个组件中的按钮时,如何显示/隐藏React组件?

卡罗琳

我有以下React组件:

export default class AdminHomePage extends Component {

  render() {
    return (
      <div>
        <NavBar />
        <OptionsMenu />
        <Form /> // needs to be inittially hidden 
        <ImportFile /> // needs to be inittially hidden 
        <Footer />
      </div>
    );
  }

}

在我的OptionsMenu组件中,我有两个按钮:

export default class OptionsMenu extends Component {

  render() {
    return (
      <div className="admin-menu">
        <div className="admin-menu-header">Select an option</div>
        <div className="buttons-admin-menu">

          <button className="button-admin">
            Register
          </button>

          <button className="button-admin" onClick={getFileModel}>
            Import CSV file
          </button>

        </div>
      </div>
    );
  }

}

首先,我需要同时隐藏FormImportFile组件,因此,当我单击OptionsMenu文件中的“ Import CSV”按钮时,将显示ImportFile组件,然后单击“ Register”按钮,我展示了Form组件。

我只找到了显示如何隐藏/显示在同一文件/类上具有各自按钮的组件的主题,因此我不知道如何处理不同类上的按钮和组件。

提前致谢。

沉默

您需要在父组件中创建一个记录状态(确定可见性的状态)的方法,并将该方法作为道具传递:

export default class AdminHomePage extends Component {

constructor(props) {
   super(props);

   this.state = {
      isVisible: false
   }
   this.isElVisible = this.isElVisible.bind(this);
}

isElVisible() {
   this.setState({isVisible: !isVisible});
}

render() {
 return (
  <div>
    <NavBar />
    <OptionsMenu isViz={this.isElVisible} />
    <Form /> // needs to be inittially hidden 
    { this.state.isVisible? <ImportFile /> : '' } // needs to be inittially hidden 
    <Footer />
  </div>
  );
  }

}

然后,调用props.isViz您的OptionsMenu组件,onClick或任何您希望其可见的位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在React中让一个组件“位于另一个组件之下”?

在另一个单击按钮上追加一个React组件

React-如何从另一个组件中的图像onClick事件显示组件?

如何从另一个组件“隐藏/显示”“可扩展项目”组件(类星体)

单击另一个组件时如何渲染组件?反应

在Vue JS中单击按钮后,如何隐藏警报并显示另一个警报?

如何通过单击按钮将另一个Razor组件加载到Razor组件中?

如何在React中从另一个组件设置一个组件的状态

如何通过在React中的兄弟组件上单击事件将图像加载到另一个组件中

如何通过在React中单击另一个组件来删除组件?

(反应)单击提交按钮时如何获取另一个组件的状态?

在React中单击另一个组件时如何还原为先前单击的组件的原始背景色

如何在单击一次按钮时渲染另一个React组件?(功能组件)

单击父组件中的另一个按钮时,如何在子组件上的按钮中添加动态类名?

如何使用JavaScript单击另一个按钮时隐藏/显示一个按钮

如何在角度2中单击按钮时将数据从一个组件发送到另一个组件

如何隐藏组件反应并显示另一个组件?

如何在另一个组件中显示/隐藏链接?

单击模态确定按钮时如何从另一个组件提交表单(bootstrap vue)

如何使用react,typescript和graphql更新从单击另一个组件中的按钮的查询中获得的值?

如何禁用导入到另一个组件的 React 中的按钮?

通过单击另一个 vue 组件或 html 按钮单击按钮,在不同页面中获取 vue 组件

如何通过单击 Vue 中的另一个 div(按钮)来显示隐藏的 div?

每次单击按钮时更新另一个组件中的变量值

如何在按钮单击时添加另一个组件

如何使一个组件中的按钮 onClick 调用另一个组件中的函数 React

在 react 中输入另一个组件时,如何从组件中删除 className

如何在 React 中从另一个组件重新渲染一个组件?

在 React 中单击另一个组件中的按钮后如何显示 Modal?