gpt4 book ai didi

javascript - react : How to reload a component onClick

转载 作者:行者123 更新时间:2023-11-30 08:21:15 25 4
gpt4 key购买 nike

我是 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()}>&times;</span>
<Requirements />
</div>
</div>

.........
</div>
)
}
}

export default UploadDocument

最佳答案

您可以更改提供给组件的 key Prop ,以便卸载它并安装一个新组件。

您可以在您的状态中保留一个随机值,当调用 getDocFinancialInfo 时再次随机化,并将此值用作 Requirementskey .

示例

class Requirements extends React.Component {
state = { count: 0 };

componentDidMount() {
this.interval = setInterval(() => {
this.setState(({ count }) => ({ count: count + 1 }));
}, 1000);
}

componentWillUnmount() {
clearInterval(this.interval);
}

render() {
return <div> {this.state.count}</div>;
}
}

class UploadDocument extends React.Component {
state = {
requirementKey: Math.random()
};

getDocFinancialInfo = docId => {
this.setState({ requirementKey: Math.random() });
};

render() {
return (
<div>
<Requirements key={this.state.requirementKey} />
<button onClick={this.getDocFinancialInfo}> Reload </button>
</div>
);
}
}

ReactDOM.render(<UploadDocument />, document.getElementById("root"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<div id="root"></div>

关于javascript - react : How to reload a component onClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53205951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com