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

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

JSX 元素的 HOC - 使用包裝元素渲染 jsx

JSX 元素的 HOC - 使用包裝元素渲染 jsx

幕布斯7119047 2023-06-09 15:02:37
我想調用 ReactJS HOC 來圍繞 JSX 包裝工具提示。調用應該是這樣的:withTooltip(JSX, "very nice")為此我創建了這個函數:import React from "react";import MUITooltip from "@material-ui/core/Tooltip";import useStyles from "./index.styles";const withTooltip = (Component, text: string) => (props) => {  const classes = useStyles();  return (    <MUITooltip className={classes.root} title={text}>      <Component {...props} />    </MUITooltip>  );};export default withTooltip;電話:import withTooltip from "commons/withTooltip/withTooltip";  const dialogBtn =    isOk &&    withTooltip(      <div className={classes.buttonWithLoader}>        <OpenDialogButton          variant={BaseButtonVariant.Icon}          openDialogAttributes={areas.button.openDialogAttributes}        />      </div>,      "Very nice",    );            return (      <Fragment>        {dialogBtn}      </Fragment>    );它說:函數作為 React 子項無效。如果您返回一個組件而不是從渲染中返回,則可能會發生這種情況?;蛘咭苍S你打算調用這個函數而不是返回它如何解決?
查看完整描述

1 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

Component當您傳入 JSX 時,您的 HOC 接受一個參數。嘗試用函數包裝 JSX 或傳入呈現按鈕的組件。


但是,在您的情況下,您可能希望控制組件中的工具提示文本。如果是這種情況,我不會為此使用 HOC,而是使用包裝組件。


function WithTooltip({ classes, text, children }) {

  return (

    <MUITooltip className={classes.root} title={text}>

      {children}

    </MUITooltip>

  );

}


export default WithTooltip;

const dialogBtn = isOk && (

  <WithTooltip text="Very nice">

    <div className={classes.buttonWithLoader}>

      <OpenDialogButton

        variant={BaseButtonVariant.Icon}

        openDialogAttributes={areas.button.openDialogAttributes}

      />

    </div>

  </WithTooltip>

);


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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