javascript - 为什么我的组件之一不会使用 Hook 隐藏 onclick?

标签 javascript reactjs debugging react-hooks

我一直想不通为什么 Spin Now 在单击时不会隐藏。它正确地显示 Claim Now 单击 Spin Now 但是一旦 Claim Now 显示,我希望 Spin Now 隐藏.我正在使用 Hook ,我做错了什么?

import React, { useState } from 'react';
import SpinNowButton from '../../components/SpinNowButton/SpinNowButton';
import ClaimNowButton from '../../components/ClaimNowButton/ClaimNowButton';
import './Buttons.css';

const Buttons = () => {
    const [showSpin, setShowSpin] = useState(false);
    const [showClaim, setShowClaim] = useState(false);

    return(
        <div className="both-buttons">
            <SpinNowButton onClick={() => setShowClaim(true)}/>
            {showClaim ? <ClaimNowButton/> : null}
            {showSpin ? <SpinNowButton/> : null}
        </div>
    );
};

export default Buttons;

最佳答案

因此,您只需要一个状态即可完成此操作,并将其设置为与之前的值相反的值。然后下面的三元组件将渲染一个组件,如果为真,则为另一个。


编辑 - 我认为这更接近您要查找的内容:

import React, { useState } from 'react';
import SpinNowButton from '../../components/SpinNowButton/SpinNowButton';
import ClaimNowButton from '../../components/ClaimNowButton/ClaimNowButton';
import './Buttons.css';

const Buttons = () => {
    const [showClaim, setShowClaim] = useState(false);

    const handleCLick = () => {setShowClaim(!showClaim)}

    return(
        <div className="both-buttons">
            {showClaim ? null : <SpinNowButton onClick{() => handleClick()}/>}
            {showClaim ? <ClaimNowButton onClick{() => handleClick()}/> : null}
        </div>
    );
};

export default Buttons;

关于javascript - 为什么我的组件之一不会使用 Hook 隐藏 onclick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58327489/

相关文章:

javascript - 字符串到整数未正确定义

javascript - 关闭子选项卡后关闭父选项卡

javascript - ReactJS + react 路由器 : How to reference a specific object to pass down as properties?

linux - 从崩溃信息中打印函数名称

macos - 如何让 LLDB 打印共享库在内存中的位置?

javascript - 几种带有OnChange事件的表单

Javascript:迭代 JSON 对象

javascript - react .createClass() 滚动到 ref : scrollIntoView not a function

reactjs - 错误 : Actions must be plain objects. 相反,实际类型为 : 'function' . 您可能需要将中间件添加到您的商店设置中

debugging - 除了测试现有测试的覆盖率之外,是否还有软件故障注入(inject)的用途?