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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將樣式應(yīng)用于特定的反應(yīng)地圖項

將樣式應(yīng)用于特定的反應(yīng)地圖項

翻翻過去那場雪 2023-08-10 15:58:02
我想在循環(huán)映射的特定元素上應(yīng)用一個類。const items = [    {        key: 'Menu1key',        content: 'Menu 1',    },    {        key: 'Menu2',        content: 'Menu2key'    },    {        key: 'Menu3Key',        content: 'Menu3',        children: [{            key: 'SubMenu3Key',            content: 'SubMenu3',        },        {            key: 'SubMenu5Key',            content: 'SubMenu5'        }]    },    {        key: 'Menu4Key',        content: 'Meu4',        children: [{            key: 'SubMenu4Key',            content: 'SubMenu4',        },        {            key: 'SubMenu5Key',            content: 'SubMenu5'        }]    }]const StackedMenu = (props) => {    let [chevronRotation, setChevronRotation] = useState('')    let [itemClicked, setItemClicked] = useState(props.itemClicked);    let [depth, setDepth] = useState(props.depth)    return (<Menu primary defaultActiveIndex={0} activeIndex={itemClicked} vertical pointing style={{ width: '100%' }}>        {props.items.map((item, index) => {            return (<>                <MenuItem onClick={(e, data) => { setItemClicked(data.index); setChevronRotation(`rotate`) }} index={index} key={index} pointing="start" >                    <Menu.ItemContent style={depth > 0 ? { paddingLeft: '0.5em' } : null} >{item.content}</Menu.ItemContent>                    {item.children ?                        (<Menu.ItemIcon id={index} style={{ right: "0px", position: "absolute" }} className={props.itemClicked === index && item.children ? 'rotate' : ''}>                            <ChevronEndMediumIcon />                        </Menu.ItemIcon>) : null}                </MenuItem>                {itemClicked === index && item.children ? <div><StackedMenu items={item.children} depth={depth + 1} itemClicked={0} /></div> : null}            </>)        })}    </Menu>)}我使用遞歸組件來創(chuàng)建子菜單。實際上,當我打開菜單時,所有 V 形都會展開,我想要的是只有單擊的項目的 V 形才會展開。
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻1842條經(jīng)驗 獲得超13個贊

您的問題是您正在設(shè)置一個本地狀態(tài)來控制它是否應(yīng)該打開,但然后檢查單擊項目的道具。


更改這一行:


// I removed props from  props.itemClicked

<Menu.ItemIcon id={index} style={{ right: "0px", position: "absolute" }} className={itemClicked === index && item.children ? 'rotate' : ''}> 


查看完整回答
反對 回復(fù) 2023-08-10
?
森欄

TA貢獻1810條經(jīng)驗 獲得超5個贊

您應(yīng)該使用組件的狀態(tài)來檢查菜單項是否打開。另外,我刪除了不必要的depth狀態(tài)。希望這能有所幫助。


const StackedMenu = ({items, depth, ...otherProps}) => {

  let [chevronRotation, setChevronRotation] = useState('');

  let [itemClicked, setItemClicked] = useState(otherProps.itemClicked);


  return (

    <Menu

      primary

      defaultActiveIndex={0}

      activeIndex={itemClicked}

      vertical

      pointing

      style={{width: '100%'}}>

      {items.map((item, index) => {

        return (

          <>

            <MenuItem

              onClick={(e, data) => {

                setItemClicked(data.index);

                setChevronRotation(`rotate`);

              }}

              index={index}

              key={index}

              pointing="start">

              <Menu.ItemContent

                style={depth > 0 ? {paddingLeft: '0.5em'} : null}>

                {item.content}

              </Menu.ItemContent>

              {item.children ? (

                <Menu.ItemIcon

                  id={index}

                  style={{right: '0px', position: 'absolute'}}

                  className={itemClicked === index ? 'rotate' : ''}>

                  <ChevronEndMediumIcon />

                </Menu.ItemIcon>

              ) : null}

            </MenuItem>

            {itemClicked === index && item.children ? (

              <div>

                <StackedMenu

                  items={item.children}

                  depth={depth + 1}

                  itemClicked={0}

                />

              </div>

            ) : null}

          </>

        );

      })}

    </Menu>

  );

};


查看完整回答
反對 回復(fù) 2023-08-10
?
手掌心

TA貢獻1942條經(jīng)驗 獲得超3個贊

使用“代碼分割”。只需創(chuàng)建一個單獨的組件并將狀態(tài)放置在該組件內(nèi)即可。這會為列表中的每個項目創(chuàng)建一個單獨的狀態(tài),以便 onclick 僅遵循該項目。


<div>

<Mycomponent />

</div>


const Mycomponent = ()=>{

    const [active, setactive] = useState(false);


return (

<div>

<div

          key={i}

          style={{

            boxShadow: active 

              ? "4px 3px 8px 0px rgba(1, 156, 48, 0.3)" 

              : "initial"

          }}

          onClick={() => setactive(!active)}

        >

          {message.content}

        </div>

<div>

);


查看完整回答
反對 回復(fù) 2023-08-10
  • 3 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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