【发布时间】:2020-08-19 00:22:55
【问题描述】:
早安。
需要帮助,我有以下脚本,问题是 setState 不起作用,我想我在这里遗漏了什么?还是我做错了。下面的“return”在“.map”内,所以我可以在数组中显示 3 文件。谢谢
constructor(props) {
super(props);
this.state = {
// fileName: ['SAMPLE DOCUMENT 1', 'SAMPLE DOCUMENT 2', 'SAMPLE DOCUMENT 3'],
file: [
{fileName: 'SAMPLE DOCUMENT 1', id: 123456, hash: '9153BB2EFC17BF53218FA15C977EDCD3', fileStatus:
'PENDING APPROVAL', fileId: 'APFEX-9153BB2E-C6F90E', isViewed: 'false', activateButton: false},
{fileName: 'SAMPLE DOCUMENT 2', id: 124234, hash: '9153BB2EFC17BF53218JEFSFH77EDCD3', fileStatus:
'PENDING APPROVAL', fileId: 'APFEX-9153BB2E-C6KS0E', isViewed: 'false', activateButton: false},
{fileName: 'SAMPLE DOCUMENT 3', id: 134564, hash: '9153BBMSJFOWN562DW689FWS641WES63', fileStatus:
'PENDING APPROVAL', fileId: 'APFEX-9153BB2E-CSS9HG', isViewed: 'false', activateButton: false}
],
};
}
activatebutton = (key) => {
const {activateButton} = key
this.setState({ activateButton: true }, () => {
});
}
return (
{this.state.file.map(file => (
<TableRow className={this.state.classes.row} key={file.id} data-id={file.id}>
<CustomTableCell align="left" className={classes.row}>
<a
id={`download-${file.id}`}
// onClick={() => downloadFile({ transactionId, fileId, id, fileName })}
onClick={() => this.activatebutton(file)}
rel="noreferrer"
style={{textDecoration:'none',color:'#126ebd',cursor:'pointer'}}
// eslint-disable-next-line no-script-url
href="javascript:void(0);"
>
{file.fileName}
</a>
</CustomTableCell>
<TableRow/>
)
【问题讨论】:
-
定义“不工作”。
-
我想将 this.state.file[].activebutton 中的状态从 false 更改为 true,但它没有改变
-
activatebutton = (key) => { leteditedFiles = oldFiles.map(file => if(file.id === fileToChange.id){ file.activateButton = true }); this.setState({ 文件:editedFiles }); }
-
嗨 Kishor,问题,“oldFiles”是从哪里来的?这是为了激活按钮功能吗?原来是错误。谢谢
标签: javascript reactjs jsx setstate