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

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

似乎無(wú)法更改組件的道具

似乎無(wú)法更改組件的道具

函數(shù)式編程 2021-11-12 17:20:54
我有以下兩個(gè)組件:為了可讀性,我將在這個(gè)問(wèn)題中跳過(guò)imports 和exports資源管理器.jsconst Explorer = () => {    const [selected, setSelected] = useState('C');     let dirArr = [        <Program key={"C"} name="C" isSelected={true}/>,        <Program key={"D"} name="D" isSelected={false}/>     ];     const changeSelection = (newSelection) => {        if (selected !== newSelection){            dirArr = dirArr.map((el) => {                switch (el.props.name){                   case newSelection:                   case selected:                       return <Program key={el.props.name} name={el.props.name} isSelected={!el.props.isSelected}/>                   default:                    return el                }            });         }       setSelected(newSelection);     }    const handleClick = (e) => {        //TODO: Make sure only <Program> allowed       changeSelection(e.target.parentNode.firstElementChild.innerHTML);    }    return (        <div onClick={handleClick}>            {dirArr}                    </div>    ) }基本上我想要做的是,點(diǎn)擊取消選擇上一個(gè)突出顯示的組件并突出顯示新的組件。因此,在mapI'm 翻轉(zhuǎn)isSelected道具上舊selected元素和newSelection return <Program key={el.props.name} name={el.props.name} isSelected={!el.props.isSelected}/>然后這里是Program.jsconst Program = (props) => {    const [name, setName] = useState(props.name);    const [size, setSize] = useState(0);    const [date, setDate] = useState('01.01.75');    const selectedDeterminer = () => {        return props.isSelected ? { background: 'blue'} : {}    }    return (        <div style={selectedDeterminer()}>            <section className="program-name">{name}</section>            <section className="program-size">{size}</section>            <section className="program-date">{date}</section>        </div>    )}在控制臺(tái)記錄時(shí),我確定我選擇的是元素名稱還是el.props.isSelected正確的名稱,它只是在返回的地圖上,它似乎不會(huì)影響結(jié)果
查看完整描述

1 回答

?
弒天下

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

我想問(wèn)題在于您使用的是靜態(tài)isSelected道具 - 您需要使用狀態(tài)selected變量:


let dirArr = [ 

   <Program key={"C"} name="C" isSelected={selected === 'C'}/>, 

   <Program key={"D"} name="D" isSelected={selected === 'D'}/>

];


查看完整回答
反對(duì) 回復(fù) 2021-11-12
  • 1 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報(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)