亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在函數 React 組件中切換 CSS 樣式

在函數 React 組件中切換 CSS 樣式

aluckdog 2023-03-24 16:03:57
每篇關于如何在 React 中切換 css 的帖子或教程都假定我使用的是類組件。但是,我使用的是功能組件,無法訪問this和state。有人能告訴我如何在 React 函數組件中切換 JSX 元素的 CSS 樣式嗎?import React from 'react';import { Row, Container, Col } from 'react-bootstrap';const FilterBar = ( {eventFilters, setEventFilters} ) => {    const someFunction = () => {      // code in here  }    return(    <div className="row-fluid" >      <Container fluid >        <Row className="justify-content-md-center mb-2 mt-2">          <Col onClick={someFunction}> <button value="ALL"> All </button> </Col>             <Col onClick={someFunction}> <button value="WORKSHOP"> Workshop </button> </Col>                  <Col onClick={someFunction}> <button value="MINIEVENT"> Minievent </button> </Col>                </Row>        <Row className="justify-content-md-center mb-2">            <Col onClick={someFunction}> <button value="SPEAKER"> Speaker </button></Col>          <Col onClick={someFunction}> <button value="MEAL"> Meal </button> </Col>          <Col onClick={someFunction}> <button value="OTHER"> Other </button> </Col>             </Row>      </Container>    </div>  );}export default FilterBar; 
查看完整描述

1 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

通過點擊事件對象切換一些樣式。您可以使用事件目標樣式屬性將當前textDecoration屬性更改為“直通”或無(“”)。


const toggleStrikethrough = (e) => {

  e.target.style.textDecoration =

    e.target.style.textDecoration === "line-through" ? "" : "line-through";

};

function App() {

  const toggleStrikethrough = (e) => {

    e.target.style.textDecoration =

      e.target.style.textDecoration === "line-through" ? "" : "line-through";

  };


  return (

    <div className="App">

      <div onClick={toggleStrikethrough}>ALL</div>

      <div onClick={toggleStrikethrough}>WORKSHOP</div>

      <div onClick={toggleStrikethrough}>MINIEVENT</div>

      <div onClick={toggleStrikethrough}>SPEAKER</div>

      <div onClick={toggleStrikethrough}>MEAL</div>

      <div onClick={toggleStrikethrough}>OTHER</div>

    </div>

  );

}

注意:雖然這通常是不受歡迎的,并且被認為是一種反模式,因為您正在直接操作 DOM。更好和更反應的方法是為每個要切換樣式(或任何真正的)的元素在本地組件狀態中保持切換的“狀態” 。


查看完整回答
反對 回復 2023-03-24
  • 1 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號