Сценарий заключается в том, что после монтирования компонента в прослушивателе событий я устанавливаю переменную состояния, а другие переменные состояния задаются с помощью вызова rest из бэкэнда.
На данный момент я являюсьиспользуя componentWillUpdate и вызывая rest и устанавливая все необходимые состояния.
Я пытался использовать метод componentWillUpdate для вычисления и установки других переменных состояния.Но его повторный рендеринг несколько раз.Я предполагаю, что я определенно делаю что-то не так здесь.
export default class Person extends React.Component {
constructor(props, context) {
super(props, context);
this.state = {
name: this.props.name,
age: "",
country: ""
};
}
componentDidMount() {
this.setDerivedStates();
}
componentWillUpdate() {
this.setDerivedStates();
}
attachListner() {
document.addEventListner("customEvent", () => {
this.setState({ name: something });
});
}
setDerivedStates() {
FetchService.get("url1" + this.state.name).then(response =>
this.setState({ age: response.age})
);
FetchService.get("url2" + this.state.name).then(response =>
this.setState({ country: response.country })
);
}
render() {
return (
<div>
<p>{this.state.name}</p>
<p>{this.state.age}</p>
<p>{this.state.country}</p>
</div>
);
}
}
Я хочу повторно выполнить рендеринг компонента один раз со всеми новыми переменными состояния.Подскажите пожалуйста как мне это сделать.какой метод жизненного цикла и как я должен использовать, чтобы установить все эти состояния?