第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

onClick() 僅適用于第二次單擊 - 反應(yīng)

onClick() 僅適用于第二次單擊 - 反應(yīng)

狐的傳說(shuō) 2023-08-24 10:25:05
我的按鈕只有在雙擊后才起作用。我在上一篇文章中了解到,問(wèn)題在于彈出的狀態(tài)由所有按鈕共享,因此如果您單擊一個(gè)按鈕,它會(huì)更改每個(gè)按鈕的狀態(tài)誰(shuí)能幫我找到解決方案嗎?function Challange() {  const [isPopped, setPop] = useState(false);  const pop = () => {    setPop(!isPopped);  };  return (    <>      {isPopped && <Dialog2 />}      <div className="challanges">        <h1 className="newchallenge">Choose New Challange</h1>        <button className="challangeBtn" onClick={pop}>          Eat Vegetarian (31days)        </button>        <button className="challangeBtn" onClick={pop}>          Take the bike to work (14days)        </button>        <button className="challangeBtn" onClick={pop}>          Recycle your plastic bottles (31days)        </button>        <button className="challangeBtn" onClick={pop}>          Use public transport to commute (31days)        </button>        <button className="challangeBtn" onClick={pop}>          Don't fly an airplane (365days)        </button>      </div>    </>  );}export default Challange;
查看完整描述

4 回答

?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊

問(wèn)題是你的 pop 函數(shù)是像toggle.?它將從 true 切換到 false,從 false 切換到 true。

只需將其更改為 true 即可。

可能發(fā)生的情況是這樣的:第一次單擊打開(kāi)對(duì)話框,然后關(guān)閉對(duì)話框但不要isPopped再次設(shè)置為 false。


查看完整回答
反對(duì) 回復(fù) 2023-08-24
?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果您想在單擊按鈕時(shí)打開(kāi)對(duì)話框,您可以更改 pop 函數(shù)以將狀態(tài)設(shè)置為 true,如下所示:

const?pop?=?()?=>?{
????setPop(true);
};

每次單擊按鈕時(shí),當(dāng)前代碼都會(huì)切換狀態(tài),因此第一次單擊時(shí)將呈現(xiàn) Dialog2,第二次單擊時(shí)將再次隱藏。

附:

我認(rèn)為你想要的是一種打開(kāi)對(duì)話框的方法和一種關(guān)閉對(duì)話框的方法。

所以你可以做這樣的事情:

function Challange() {

? const [isPopped, setPop] = useState(false);


? const openDialog = () => {

? ? setPop(true);

? };

??

? // renember to call this function when you want to close the dialog

? const closeDialog = () => {

? ? setPop(false);

? };


? return (

? ? <>

? ? ? {isPopped && <Dialog2 />}

? ? ? <div className="challanges">

? ? ? ? <h1 className="newchallenge">Choose New Challange</h1>

? ? ? ? <button className="challangeBtn" onClick={openDialog}>

? ? ? ? ? Eat Vegetarian (31days)

? ? ? ? </button>

? ? ? ? <button className="challangeBtn" onClick={openDialog}>

? ? ? ? ? Take the bike to work (14days)

? ? ? ? </button>

? ? ? ? <button className="challangeBtn" onClick={openDialog}>

? ? ? ? ? Recycle your plastic bottles (31days)

? ? ? ? </button>

? ? ? ? <button className="challangeBtn" onClick={openDialog}>

? ? ? ? ? Use public transport to commute (31days)

? ? ? ? </button>

? ? ? ? <button className="challangeBtn" onClick={openDialog}>

? ? ? ? ? Don't fly an airplane (365days)

? ? ? ? </button>

? ? ? </div>

? ? </>

? );

}


export default Challange;


查看完整回答
反對(duì) 回復(fù) 2023-08-24
?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊

在調(diào)用 setPop 的地方將 pop 函數(shù)更改為true,將確保該函數(shù)在第一次 onClick 上工作,而不是在第二次單擊時(shí)切換到您想要的內(nèi)容。

const pop = () => {
    setPop(true); 
};


查看完整回答
反對(duì) 回復(fù) 2023-08-24
?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以管理每種類型挑戰(zhàn)的狀態(tài),并僅在選擇一種挑戰(zhàn)時(shí)切換彈出窗口。我認(rèn)為一次只能選擇一項(xiàng)挑戰(zhàn)。


class Challenge extends React.Component {

    constructor(props) {

        super(props);

        this.state = {

            isPopped: false,

            selectedChallenge: ""

        }

    }


    selectChallenge = (challengeName) => {

        this.setState({

            selectedChallenge: challengeName,

        });

        this.togglePopped();

    }


    togglePopped = () => {

        this.setState({isPopped: !this.state.isPopped});

    }


    render() {

        return <div>

            {this.state.isPopped && <Dialog2 challenge={this.state.selectedChallenge} hideDialog={this.togglePopped}/>}


            <div className="challanges">

                <h1 className="newchallenge">Choose New Challange</h1>

                <button className="challangeBtn" onClick={() => {

                    this.selectChallenge('Eat Vegetarian (31days ')

                }}>

                    Eat Vegetarian (31days)

                </button>

                <button className="challangeBtn" onClick={() => {

                    this.selectChallenge('Take the bike to work (14days)')

                }}>

                    Take the bike to work (14days)

                </button>

                <button className="challangeBtn" onClick={() => {

                    this.selectChallenge('Recycle your plastic bottles (31days)')

                }}>

                    Recycle your plastic bottles (31days)

                </button>

                <button className="challangeBtn" onClick={() => {

                    this.selectChallenge('Use public transport to commute (31days)')

                }}>

                    Use public transport to commute (31days)

                </button>

                <button className="challangeBtn" onClick={() => {

                    this.selectChallenge("Don't fly an airplane (365days)")

                }}>

                    Don't fly an airplane (365days)

                </button>

            </div>

        </div>;

    }

}


class Dialog2 extends React.Component {

    constructor(props) {

        super(props);

    }

    render() {

        return <div class="dialog">

            <h2>Dialog2</h2>

            <div>{this.props.challenge}</div>

            <button onClick={this.props.hideDialog}>Hide</button>

        </div>

    }

}


ReactDOM.render(<Challenge/>, document.querySelector('#root'))

.dialog {

  width: 500px;

  background: red;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

<div id="root"></div>

這是功能組件版本


function Challenge (props) {

    const [isPopped, setIsPopped] = useState(false);

    const [selectedChallenge, setSelectedChallenge] = useState("");


    const selectChallenge = (challengeName) => {

        setSelectedChallenge(challengeName);

        togglePopped();

    }


    const togglePopped = () => {

        setIsPopped(!isPopped);

    }


    return <div>

        {isPopped && <Dialog2 challenge={selectedChallenge} hideDialog={togglePopped}/>}


        <div className="challanges">

            <h1 className="newchallenge">Choose New Challange</h1>

            <button className="challangeBtn" onClick={() => {

                selectChallenge('Eat Vegetarian (31days ')

            }}>

                Eat Vegetarian (31days)

            </button>

            <button className="challangeBtn" onClick={() => {

                selectChallenge('Take the bike to work (14days)')

            }}>

                Take the bike to work (14days)

            </button>

            <button className="challangeBtn" onClick={() => {

                selectChallenge('Recycle your plastic bottles (31days)')

            }}>

                Recycle your plastic bottles (31days)

            </button>

            <button className="challangeBtn" onClick={() => {

                selectChallenge('Use public transport to commute (31days)')

            }}>     

                Use public transport to commute (31days)

            </button>

            <button className="challangeBtn" onClick={() => {

                selectChallenge("Don't fly an airplane (365days)")

            }}> 

                Don't fly an airplane (365days)

            </button>

        </div>

    </div>;

}


function Dialog2() {

    return <div>

        <h2>Dialog2</h2>

        <div>{props.challenge}</div>

        <button onClick={props.hideDialog}>Hide</button>

    </div>

}



查看完整回答
反對(duì) 回復(fù) 2023-08-24
  • 4 回答
  • 0 關(guān)注
  • 219 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)