组件本身
import React from 'react';
import styles from './ImgCreator.module.scss';
interface IImgProps{
imgArr:Array<string>,
}
const getData = (data:Array<string>) => {
let arr = data.map(e => {
//каждый раз пробежатся по data нет смысла данные не меняются
console.log(`maping`);
return (
<React.Fragment key={e}>
{/* <img className={styles.img} src={e} alt={e}/> */}
<span style={{color:'red'}}>{Math.random()}</span>
</React.Fragment>
)
})
return arr
}
export const ImgCreator:React.FC<IImgProps> =({imgArr}) => {
//тут как то нужно сохранить arr чтобы при следующем рендере getData не сработал
const arr = getData(imgArr)
return (
<div className={styles.root}>
{arr}
</div>
)
}
怎么称呼
export const MyTabs = () => {
const imgArr = [
pictures.rect5_1,
pictures.rect5_2,
pictures.rect5_3,
pictures.rect5_4,
pictures.rect5_5,
pictures.rect5_6,
]
return (
<div className={styles.root}>
{imgArr.map((e) => {
return <TabPanel key={e.replace(/\s/g,'')}>
<ImgCreator imgArr={imgArr}/>
</TabPanel>
})}
</div>
)
}
用于
useState更改变量并useEffect跟踪道具更改,并且仅在更改时运行。您还可以使用React.memo()使组件仅在道具更改时呈现。