javascript - 将 React 组件附加到 JSX 之外的元素?
问题描述
我有这个反应组件:
import React, { useEffect } from 'react'
import styles from './_PhotoCollage.module.scss'
import PhotoCard from '../PhotoCard'
const PhotoCollage = ({ author }) => {
let i = 1
useEffect(() => {
author.posts.forEach(post => {
document.getElementById(`collage-${i}`).appendChild(<PhotoCard/>)
i++
if (i > 4) i = 1
})
}, [])
return (
<div className={styles.photoCollage}>
<div className={styles.col} id="collage-1"/>
<div className={styles.col} id="collage-2"/>
<div className={styles.col} id="collage-3"/>
<div className={styles.col} id="collage-4"/>
</div>
)
}
export default PhotoCollage
appendChild()
根本不喜欢这个。
我可以轻松地在每个循环中创建四个循环,<div className={styles.col} id="collage-X"/>
但我想找到一种方法来使用一个循环来执行此操作,因为它看起来更干净,而且我想会更优化/更快。
有没有办法使用 DOM 将 React 组件附加到特定元素?
解决方案
推荐阅读
- c# - 如何使用 ASP MVC 在另一个文本框上设置总和值
- javascript - 网络蓝牙无法检测到我的手机(Galaxy Note 9)
- magento - Magento 1.9 带有独立购物车的多商店
- oracle-apex - 在交互式报告中,固定为“区域”的“标题”不适用于控制中断
- python - Python 文件删除 PermissionError: [WinError 32]
- android - 如何在自定义视图/组件中双向绑定 Seekbar?
- asp.net-mvc - ASP.net MVC 页面 - 显示进行中并在后台运行一些任务
- swift - 如何在 Firebase 中保存复杂的对象?
- r - 如何将另一个数据框中的行添加到另一个但只有选定的列
- flutter - 从系统键盘-Flutter 在模拟器中按“Tab”键时文本字段溢出