javascript - React-JS- 获取数组索引
问题描述
大家好,我是反应的初学者。
我正在使用 react-js 和 noSQL 数据库(Firebase)进行开发。
我有一个集合,在该集合中我有 3 个文档,每个文档都有一个自动生成的 ID。
我正在创建一个用于添加评论的函数,并且我希望该函数按如下方式运行。
一旦您单击特定帖子的“评论”按钮,就会被重定向到具有该特定帖子的模式,并具有添加文本(评论)的输入。
我已经创建了模式和一个 map () 从同一个集合返回所有文档。但是,此地图返回所有文档,而不仅仅是我单击“评论”按钮的特定文档。有人可以帮我吗?
示例:如何在模态中仅呈现该数组的索引 0?
我的问题是:我没有办法只从该集合中返回特定文档。我的地图会立即将所有文件返回给我。
States:
constructor(props) {
super(props);
this.state = {
Posts: [],
idDoc: [],
openComent: false,
}
abrirComent() {
if (!this.state.openComent) {
document.addEventListener('click', this.isInPageModalComent, false);
} else {
document.removeEventListener('click', this.isInPageModalComent, false);
}
this.setState( prevState => ({
openComent: !prevState.openComent
}));
}
// adding (node) at DOM;
isInPageModalComent(e) {
if(this.node) {
const domNode = ReactDOM.findDOMNode(this.node);
if(this.node.contains(e.target)) {
return domNode;
}
}
this.abrirComent();
}
代码 jsx:
{this.state.openComent && (
<div>
<div className="overlay">
<div ref={node => {this.node = node}} className="Modal-Comentario" style={{overflowY: 'scroll'}}>
{this.state.Posts.map((itens,index) => {
return (
<div>
<div className="viewPost-content" key={index}>
{/* get background-color post */}
<div className="viewPost-box" style={{backgroundColor: itens.colorBg} } >
<p> <Moment to={itens.createdAt.toDate().toString()} /> </p>
<button id="PostDelete" onClick={this.deletePost}> <ion-icon name="ellipsis-horizontal-sharp"></ion-icon> </button>
<h2 className="text-post"> {itens.texto} </h2>
<div class="viewPost-icons">
<div style={{marginRight: '-5px', backgroundColor:'transparent'}}> <button id="bt-Posts" onClick={this.abrirComent}><ion-icon name="chatbox"></ion-icon></button></div>
<div> Comment: <input type="text" /> </div>
</div>
</div>
</div>
</div>
)
})}
</div>
</div>
</div>
)}
解决方案
使用filter 方法而不是 map 并给每个帖子一个唯一的 id,以便在回调函数中使用。
推荐阅读
- python - 如何在 Python 中使用带有故障保险的构建器模式?
- rasa-nlu - 如何使用 gunicorn 在多线程模式下运行 RASA 服务器
- python - 将打印输出写入 CSV - Numpy
- java - 如何使用 java 将表单数据插入 GoogleCloud Mysql 数据库
- javascript - javascript:函数的类型以及何时使用每个函数
- vba - 错误 1004?如果其他合理使用
- google-cloud-platform - 从 BigQuery 中的最新时间戳分片表中查询的特殊字符
- jupyter-notebook - 如何找到jupyter
目录 (2) 扩展? - amazon-web-services - Spark 使用 'partitionBy()' 写入 S3;但在 S3 目录中没有列名(只是值)
- html - 阻止 eslint 和 prettier 重新格式化 HTML 元素上的右括号