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

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

材料設(shè)計(jì)組件切換效果不起作用

材料設(shè)計(jì)組件切換效果不起作用

ITMISS 2022-06-16 10:40:12
我正在嘗試將材質(zhì)組件 IconButton 與 React 一起使用。材料設(shè)計(jì):https ://material-components.github.io/material-components-web-catalog/#/component/icon-button它工作并顯示元素并進(jìn)行重復(fù)。但是切換不起作用。這是我在 chrome 的 devtool 中的代碼和元素樹(shù)。請(qǐng)教我解決方案。import React, { useEffect } from 'react';import { MDCIconButtonToggle } from '@material/icon-button';const ButtonLike = () => {  useEffect(() => {    const iconToggle = new MDCIconButtonToggle(      document.querySelector('.mdc-icon-button'),    );    iconToggle.on = true;  });  return (    <button      id="add-to-favorites"      className="mdc-icon-button mdc-icon-button--on"      aria-label="Add to favorites"      aria-pressed="false"    >      <i className="material-icons mdc-icon-button__icon mdc-icon-button__icon--on">favorite</i>      <i className="material-icons mdc-icon-button__icon">favorite_border</i>    </button>  );};export default ButtonLike;元素樹(shù)<button id="add-to-favorites" class="mdc-icon-button mdc-icon-button--on" aria-label="Add to favorites" aria-pressed="false">  <i class="material-icons mdc-icon-button__icon mdc-icon-button__icon--on">    favorite  </i>  <i class="material-icons mdc-icon-button__icon">    favorite_border  </i></button>
查看完整描述

1 回答

?
慕標(biāo)5832272

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

iconToggle您在內(nèi)部實(shí)例化useEffect(),但您忽略了useEffect()采用第二個(gè)參數(shù)deps list的事實(shí)。沒(méi)有它,該邏輯會(huì)在每次重新渲染時(shí)重新運(yùn)行,這意味著您每次都iconToggle.on被設(shè)置回true,因此它保持在“開(kāi)啟”狀態(tài)。


作為旁注,選擇 HTML 元素的更 React-ish 方式是 by useRef(),而不是document.querySelector()可能會(huì)找到其他不需要的元素


import React, { useEffect, useRef } from 'react';

import { MDCIconButtonToggle } from '@material/icon-button';


const ButtonLike = () => {

  const buttonRef = useRef(null);


  useEffect(() => {

    const iconToggle = new MDCIconButtonToggle(buttonRef.current);

    iconToggle.on = true;

  }, []);  // <-- You need to pass in an empty array

           //     to signal that you want this logic to run only once.


  return (

    <button

      ref={buttonRef}

      id="add-to-favorites"

      className="mdc-icon-button mdc-icon-button--on"

      aria-label="Add to favorites"

      aria-pressed="false"

    >

  );

}


查看完整回答
反對(duì) 回復(fù) 2022-06-16
  • 1 回答
  • 0 關(guān)注
  • 130 瀏覽
慕課專(zhuān)欄
更多

添加回答

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