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

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

在 React 組件中多次重復作為 props 傳遞的函數

在 React 組件中多次重復作為 props 傳遞的函數

料青山看我應如是 2023-05-19 16:00:27
我目前正在研究隨機十六進制顏色生成器。我有我的 Hexa 組件和 App 組件,我在 App.js 中將 Hexa 組件作為道具傳遞,一切正常。但我面臨的問題是我希望我的 Hexa 在瀏覽器上多次出現,而不是只顯示一次。我的代碼如下。六組分import React from "react";export default function Hexa(props) {  return (    <div>      <div className="child_content">        {" "}        <h1>Random Colors</h1>        <h2>Hexadecimal Colors</h2>        <div          className="background_div"          style={{ backgroundColor: props.hexaColor() }}        >          <div className="hexa_center"> {props.hexaColor()} </div>        </div>      </div>    </div>  );}應用程序.jsimport React from "react";import Hexa from "./Hexa";import "./Style.css";export default function App() {  const hexaColor = () => {    let str = "0123456789abcdef";    let color = "";    for (let i = 0; i < 6; i++) {      let index = Math.floor(Math.random() * str.length);      color += str[index];    }    return "#" + color;  };  return (    <div className="container">      <div className="child">        <Hexa hexaColor={hexaColor} />      </div>    </div>  );}
查看完整描述

2 回答

?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

非常簡單,只需使用假數組多次渲染六邊形組件即可。


<div className='container'>

    <div className="child">

      {

        new Array(10).fill(0).map((item, i) => {

          return <Hexa  key={i} hexaColor={hexaColor}/>

        })

      }

    </div>

</div>

如果您只需要重復六邊形顏色,請像那樣更新六邊形組件。


function Hexa(props) {

  return (

    <div>

      <div className="child_content"> <h1>Random Colors</h1>

          <h2>Hexadecimal Colors</h2>

          {

            new Array(10).fill(0).map((item, i) => {

              return (

                <React.Fragment key={i}>

                <div  className="background_div" style={{ backgroundColor: props.hexaColor() }} >

                  <div className="hexa_center"> {props.hexaColor() } </div>

                </div>

                </React.Fragment>

              )

            })

          }

        

    </div>

    </div>

  )

}



function App() {

    

   const hexaColor = () => {

    let str = '0123456789abcdef'

    let color = ''

    for (let i = 0; i < 6; i++) {

      let index = Math.floor(Math.random() * str.length);

      color += str[index];

      console.log(color);

    }

    return '#' + color 

  }



    return (

      <div className='container'>

        <div className="child">

            <Hexa hexaColor={hexaColor}/>

        </div>

        

      </div>

    )

}


查看完整回答
反對 回復 2023-05-19
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

您應該重復您的 Hexa 組件。

我已經解決了這樣的問題:


你的 App.js


import React from "react";

import Hexa from "./components/Hexa";


export default function App() {


  const hexaColor = () => {

    let str = "0123456789abcdef";

    let color = "";

    for (let i = 0; i < 6; i++) {

      let index = Math.floor(Math.random() * str.length);

      color += str[index];

    }

    return "#" + color;

  };


  const createManyHexaComp = (iteration) => {

    let result;

    for (let i = 0; i < iteration; i++) {

      result = <>

        {result}

        <Hexa hexaColor={hexaColor} />

      </>;

    }

    return result;


  }


  return (

    <div className="container">

      <div className="child">

        <div className="child_content">

          {" "}

          <h1>Random Colors</h1>

          <h2>Hexadecimal Colors</h2>

          {createManyHexaComp(5)}

        </div>

      </div>

    </div>

  );

}

你的 Hexa 組件


import React from 'react';

export default function Hexa(props) {



    return (

        <div>

            <div

                className="background_div"

                style={{ backgroundColor: props.hexaColor() }}

            >

                <div className="hexa_center"> {props.hexaColor()} </div>

            </div>

        </div>

    );

};


查看完整回答
反對 回復 2023-05-19
  • 2 回答
  • 0 關注
  • 239 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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