我是React的新手,仍在学习中。我有一个组件Requirements,我希望每次通过单击事件调用getDocFinancialInfo()时重新加载它。问题在于,它第一次加载了正确的信息,但在后续的点击中没有刷新。欢迎任何帮助或建议。
import React, { Component } from 'react';
import './UploadDocument.css'
import spinner from './spinner.gif'
import verified from './verified.png';
import notverified from './not-verified.png';
import Requirements from './Requirement.js'
class UploadDocument extends Component{
constructor(props) {
super(props);
this.state = {
application: [],
document:[],
id: null,
files: [],
docFinacialInfo: [],
uploaded: null,
fileInfo: []
}
}
componentDidMount() {
......
}
getDocFinancialInfo = async(docId) => {
sessionStorage.setItem('docId',docId);
var req = document.getElementById('requirements');
req.style.display = "block";
}
render(){
......
if(notVerifiedStatus > 0){
docVerificationStatus[index] = <td className="red"><img src={notverified} alt="Not Verified"/><label onClick={()=>this.getDocFinancialInfo(docId)}>Not Verified{docId}</label></td>;
}else{
docVerificationStatus[index] = <td className="green"><img src={verified} alt="Verified" /><label>Verified</label></td>;
}
console.log("Not Verified >>>"+notVerifiedStatus);
});
......
return(
<div>
.........
<div id="requirements">
<div id="requirements-content">
<span className="close" onClick={()=>this.closeRequirements()}>×</span>
<Requirements />
</div>
</div>
.........
</div>
)
}
}
export default UploadDocument
setState
。如果状态无法推断,则还有forceUpdate
https://reactjs.org/docs/react-component.html#forceupdate。但是,如果您不使用`setState`,则可能需要仔细考虑逻辑。一个不使用`setState`的例子是实现“单一数据源”(Single Source Of Truth),但是这种情况下,您将使用类似Redux之类的工具。 - Keith