javascript - React.js 从特定行检索数据
问题描述
我在 React.js 中创建了一个表,我也使用 Firebase 进行数据存储,这是我的表代码
{tableData.map((row, index) => {
return (
<tr key={row + index}>
{row.map((cell, index) => {
return (
<td key={"cell_" + index} onClick={() => this.handleClick(this.state.userSurname)}>{cell}</td>
);
})}
</tr>
);
})}
这是我的this.setState
:
componentDidMount() {
db.onceGetUsers().on("child_added", snap =>{
var username = snap.child("name").child("name").val();
var surname = snap.child("name").child("surname").val();
this.setState({ users: this.state.users.concat([username])});
this.setState({ userSurname: this.state.userSurname.concat([surname])})
})
}
这是我的handleClick
功能:
handleClick(event){
alert(event)
}
所以..这是我的问题,警报对话框显示每个用户的姓氏,而我要做的是显示在表中单击的用户的姓氏.. 我该怎么做?:)
解决方案
如果您不想更改状态结构,则可以这样实现:
handleClick(i){
alert(this.state.userSurname[i])
}
{tableData.map((row, i) => {
return (
<tr key={row + i}>
{row.map((cell, k) => {
return (
<td key={"cell_" + k} onClick={() => this.handleClick(i)}>{cell}</td>
);
})}
</tr>
);
})}
推荐阅读
- regex - Regx 从最后两个破折号中删除输出
- python - 如何将 Spark Streaming 与 Tensorflow 集成?
- javascript - 在 Scrollview 中查看不显示
- node.js - 节点 ImageMagick 在本地成功但在 AWS Lambda 中失败
- mysql - 加入两个表后计数
- javascript - iife 内部函数需要明确的这个赋值
- tensorflow - 在 model_config_file 中分配版本标签失败
- python - 将 `tf.constant` 与整数进行比较
- c# - mdb文件数据插入增加mdb大小
- r - Concatenate data.frame character columns based on column index stored as a vector in R w/ dplyr mutate()?