index.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import React, { useEffect, useMemo, useState } from 'react'
  2. import styles from './index.module.scss'
  3. import { baseURL, hotInfo } from '@/utils/http'
  4. import { HotRowType } from '@/components/Zhot/type'
  5. import Zhot from '@/components/Zhot'
  6. function Text() {
  7. useEffect(() => {}, [])
  8. const allArr = useMemo(() => {
  9. let arr: { oneName: string; arr: HotRowType[] }[] = []
  10. for (const k in hotInfo) {
  11. arr.push({
  12. oneName: k,
  13. arr: hotInfo[k as 'cheQi']
  14. })
  15. }
  16. return arr
  17. }, [])
  18. const [acName, setAcName] = useState('')
  19. return (
  20. <div className={styles.Text} style={{ backgroundImage: `url(${baseURL + 'visit/bg.jpg'})` }}>
  21. {allArr.map(item => (
  22. <div key={item.oneName} className='box1'>
  23. <h1>{item.oneName}</h1>
  24. <div className='box2'>
  25. {item.arr.map(son => (
  26. <img
  27. src={baseURL + son.hoverSrc}
  28. key={son.name}
  29. alt=''
  30. onClick={() => setAcName(son.name)}
  31. />
  32. ))}
  33. </div>
  34. </div>
  35. ))}
  36. {acName ? <Zhot name={acName} closeFu={() => setAcName('')} /> : null}
  37. </div>
  38. )
  39. }
  40. const MemoText = React.memo(Text)
  41. export default MemoText