如何获取复选框索引/行号?
我有一个表复选框是,选中时,我想追加值,以从所述数据填充表的阵列(在tableData.element.link低于我的代码)。
我已经被点击复选框时被称为toggleRow
方法,但我怎么能追加匹配tableData.element.link
到一个数组被点击复选框时?即如何获取该被点击,这样我可以抓住从我的资料表阵列权值的复选框的行索引?
componentDidMount() {
const _self = this;
fetch(config.api.urlFor('xxx'))
.then((response) => response.json())
.then((data) => {
const tableContent = [];
data.array.forEach(element => {
tableContent.push({
date: element.date,
title: element.title,
link: <Link to='' onClick={(e)=> {e.preventDefault(); this.getPreauthorizedLink(element.link)}}>Report</Link>
});
})
this.tableData = tableContent;
this.setState({reportJSON: tableContent || [], tableIsBusy: false})
})
.catch((err) => _self.setState({tableIsBusy: false }));
}
toggleRow(name, id) {
const newSelected = Object.assign({}, this.state.selected);
let awsFileKeys = [];
if(newSelected[name]){
delete newSelected[name]
}else {
newSelected[name] = !this.state.selected[name];
}
this.setState({
selected: newSelected,
selectAll: 2
});
awsFileKeys.push(this.tableData.element.link[id]);
console.log(awsFileKeys);
}
回答如下:
我完成了这个方式实际上是由看复选框的值,分配AWS文件密钥每个复选框后。然后,我把所有的AWS文件密钥从我所选项目的阵列,并把它们放到一个新的数组:
toggleSelectAll() {
let newSelected = {};
let newFileKeys = [];
if (this.state.selectAll === 0) {
this.state.reportJSON.forEach(x => {
newSelected[x.linkRaw] = true;
});
}
this.setState({
selected: newSelected,
selectAll: this.state.selectAll === 0 ? 1 : 0
})
for(let item in Object.keys(this.state.selected)){
newFileKeys.push(this.state.selected[item]);
}
this.state.awsFileKeys = newFileKeys;
}
如何获取复选框索引/行号?
我有一个表复选框是,选中时,我想追加值,以从所述数据填充表的阵列(在tableData.element.link低于我的代码)。
我已经被点击复选框时被称为toggleRow
方法,但我怎么能追加匹配tableData.element.link
到一个数组被点击复选框时?即如何获取该被点击,这样我可以抓住从我的资料表阵列权值的复选框的行索引?
componentDidMount() {
const _self = this;
fetch(config.api.urlFor('xxx'))
.then((response) => response.json())
.then((data) => {
const tableContent = [];
data.array.forEach(element => {
tableContent.push({
date: element.date,
title: element.title,
link: <Link to='' onClick={(e)=> {e.preventDefault(); this.getPreauthorizedLink(element.link)}}>Report</Link>
});
})
this.tableData = tableContent;
this.setState({reportJSON: tableContent || [], tableIsBusy: false})
})
.catch((err) => _self.setState({tableIsBusy: false }));
}
toggleRow(name, id) {
const newSelected = Object.assign({}, this.state.selected);
let awsFileKeys = [];
if(newSelected[name]){
delete newSelected[name]
}else {
newSelected[name] = !this.state.selected[name];
}
this.setState({
selected: newSelected,
selectAll: 2
});
awsFileKeys.push(this.tableData.element.link[id]);
console.log(awsFileKeys);
}
回答如下:
我完成了这个方式实际上是由看复选框的值,分配AWS文件密钥每个复选框后。然后,我把所有的AWS文件密钥从我所选项目的阵列,并把它们放到一个新的数组:
toggleSelectAll() {
let newSelected = {};
let newFileKeys = [];
if (this.state.selectAll === 0) {
this.state.reportJSON.forEach(x => {
newSelected[x.linkRaw] = true;
});
}
this.setState({
selected: newSelected,
selectAll: this.state.selectAll === 0 ? 1 : 0
})
for(let item in Object.keys(this.state.selected)){
newFileKeys.push(this.state.selected[item]);
}
this.state.awsFileKeys = newFileKeys;
}