【发布时间】:2019-04-13 13:30:04
【问题描述】:
我对@987654326@ 有疑问:每次我在componentDidMount 中使用setState 时,它都会在child components 中多次调用render,我不知道为什么......看:
componentDidMount() {
const firstName = localStorage.getItem('nameLoggedUser');
const lastName = localStorage.getItem('lastNameLoggedUser');
const fullName = `${firstName} ${lastName}`.toLowerCase();
const loggedUserIs = localStorage.getItem("user-role");
const emailLoggedUser = localStorage.getItem('emailLoggedUser');
if (loggedUserIs === 'full') {
axios.get(`/api/menuDomain`)
.then(res => this.setState({
domain: res.data
}))
.catch(err => console.log(err))
}
}
但是,如果我使用ComponentDidUpdate,它会给出:
没错,但是 AJAX 调用没有发生...
我想进行 AJAX 调用,而不是让它渲染多次...但我不知道如何...有人可以帮助我吗?请问???
我也在使用react-router:
return (
<Router>
<Switch>
<Route path="/login" component={Login} />
<Route exact path="/" render={() =>
<Overview
{...myProps}
/>
}
/>
<Route path="/list" render={() =>
<Graphic
{...myProps}
/>
} />
</Switch>
</Router>
);
}
}
【问题讨论】:
标签: javascript reactjs