我的路由器中有两个组件,每个组件都有一个包含AXIOS的ComponentDidMount,用于检索json以加载表。问题是我只想在每个组件路由到第一次时执行AXIOS;不是连续的时间。
我只需要最初加载的JSON数据,但不需要连续渲染。当'子程序'时,如何不执行组件已渲染。是连续点击了吗?
菜单/的NavBar:
主页/子程序/按钮
路由器:
<Router>
<div>
<ul className="header">
<li><Link to="/">Document WebApps</Link></li>
<li><Link to="/subprocedures">Subprocedures</Link></li>
<li><Link to="/buttons">Buttons</Link></li>
</ul>
<Route exact path="/" component={Home} />
<Route path="/subprocedures" component={Subprocedures} />
<Route path="/buttons" component={Buttons} />
</div>
</Router>
组件:
class Subprocedures extends React.Component {
...
componentDidMount() {
axios.get(`http://www.acme.com:4448/api/DOCJSON.pgm?submit=SUBPROC`)
.then(res => {
const posts = res.data.data.children.map(obj => obj.data);
this.setState({ posts });
});
}