首页 > 其他分享 >Conditional render 1 of 3 components on button click (react)

Conditional render 1 of 3 components on button click (react)

时间:2025-01-18 10:29:37浏览次数:3  
标签:set const render button Conditional selected 按钮 null

题意

在按钮点击时有条件地渲染三个组件中的一个(React)

问题背景:

I'm new to react and been struggling to figure out how to render the components inside the container depending on which button has been clicked.

我刚接触React,一直在努力弄明白如何根据点击了哪个按钮来渲染容器内的组件。

I've set the state to false, then on the button click set it to true then used a ternary operator to show or set the component to null but won't work when the next button is clicked because the state is already set to true.

我将状态设置为false,然后在按钮点击时将其设置为true,再使用三元运算符来显示组件或将组件设置为null,但是当点击下一个按钮时不起作用,因为状态已经被设置为true

any help in the right direction would be appreciated :)

任何朝正确方向的帮助都会非常感激 :)

const AboutUs = () => {

  const [VisDetails, setVisDetails] = useState(false);

  return (

<Button>Personal Details</Button>
<Button>Bio</Button>
<Button>Qualifications</Button>

Container className={classes.container}>

<PersonalDetails />
<ProfileBio />
<ProfileQualifications />

</Container>

  );
};

问题解决:

I think the best thing to do in this case is save the state depending on what content should be showing and then update that state on button click.

我认为在这种情况下,最好的做法是根据应该显示的内容保存状态,然后在按钮点击时更新该状态。

Something like this

像这样

const AboutUs = () => {
  const [selected, setSelected] = useState(null); //Here goes the default value you want to show, or null if you want no render

  return (
    <>
      <Button
        onClick={() => {
          setSelected("personaldetails");
        }}
      >
        Personal Details
      </Button>
      <Button
        onClick={() => {
          setSelected("bio");
        }}
      >
        Bio
      </Button>
      <Button
        onClick={() => {
          setSelected("qualif");
        }}
      >
        Qualifications
      </Button>

      <Container className={classes.container}>
        {selected == "personaldetails" ? <PersonalDetails /> : null}
        {selected == "bio" ? <ProfileBio /> : null}
        {selected == "qualif" ? <ProfileQualifications /> : null}
      </Container>
    </>
  );
};

You could use a switch() but I like the inline if statement, easier to read.

你可以使用switch(),但我更喜欢内联的if语句,这样更容易阅读。

标签:set,const,render,button,Conditional,selected,按钮,null
From: https://blog.csdn.net/suiusoar/article/details/145215393

相关文章

  • html的button中的reset有什么作用?
    在HTML中,<button>元素通常用于创建一个点击按钮。然而,<button>元素本身并不直接提供“reset”功能。通常,当我们谈到HTML中的“reset”按钮时,我们指的是<input>元素的一种类型,即type="reset"。<inputtype="reset">创建一个重置按钮。当这个按钮被点击时,它会将表单中的所有输......
  • qt switchbutton
    qt实现的SwitchButton,从网上抄的代码,然后进行一些修改完善,如下switchbutton.h点击查看代码#ifndefSWITCHBUTTON_H#defineSWITCHBUTTON_H#include<QObject>#include<QWidget>#include<QTimer>#include<QColor>#include<QDebug>#definemyDebugqDebu......
  • 【WPF】使用RenderTargetBitmap截图的时候位置出现偏移的一些解决办法
    简介在WPF中,如果你需要把控件的渲染画面保存到图片,那么唯一的选择就是RenderTargetBitmap。不过,RenderTargetBitmap是个比较难伺候的主,有时候你以为能工作,但实际上不能;你以为能够正常截图,但实际上截出来的图片是歪的。所以,我总结一下自己项目中遇到的坑和解决办法吧!保存的图片......
  • React中Element&Fiber对象、WorkInProgress双缓存、Reconcile&Render&Commit、第一次
    基础概念Element对象与Fiber对象Element对象与Fiber对象Element对象定义React的Element对象是一个描述用户界面(UI)的普通JavaScript对象,通常由React.createElement或JSX语法生成。作用它是React应用中的一种描述UI的不可变数据结构。表示一个虚拟DOM......
  • Tkinter组件-Button按键
    Button按键Button简介在GUI图形界面中,用户需要有时候需要做一些确定的动作,例如播放视频,输入完账号密码后点击登录。这个时候需要就需要引入一个按钮(Button)供用户完成这个操作,在Tkinter内提供了Button方法,创建一个按钮。Button在Tkinter中的调用在Tkinter中,可以使用以......
  • 【GUI-pyqt5】QAbstractButton类
    1.描述所有按钮控件的基类提供按钮的通用功能2.继承QWidget3.功能3.1提示文本3.1.1APIAPI功能备注setText(str)设置按钮提示文本-text()获取按钮提示文本-3.1.2应用场......
  • python 代码实现了一个条件生成对抗网络(Conditional Generative Adversarial Network,C
    importtensorflowastfimportnumpyasnpimportpandasaspdimportosimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_splitfromtensorflow.keras.layersimportAdd,BatchNormalizationos.environ["KMP_DUPLICATE_LIB_O......
  • LivePusherContext.onCustomRendererEvent
    LivePusherContext.onCustomRendererEvent(stringevent,function|functioncallback)基础库2.29.0开始支持,低版本需做兼容处理。小程序插件:支持相关文档:live-pusher组件功能描述开启自定义渲染时,开发者通过此方法订阅相关事件,客户端8.0.31版本开始支持。参数......
  • 7.2 Conditional compilation 条件编译
    https://lalrpop.github.io/lalrpop/conditional-compilation.htmlLALRPOPsupportconditionalcompilationofnon-terminaldeclarationsvia#[cfg(feature="FEATURE")]attributes.IfruninabuildscriptLALRPOPwillautomaticallypickupthefeatur......
  • Error occurred prerendering page "/_not-found".(Next.js 15)
    我们需要更新UserProfile.tsx组件,改用Next.js的Link组件而不是react-router-dom的Link组件。以下是解决方法:这样可以确保组件更好地适应Next.js的框架,避免不兼容的问题。#错误的代码'useclient'importReactfrom'react'import{Box,Avatar,Typography,......