У меня есть сценарий, хочу ли я получить выгоду от вызова getInitialProps (асинхронный вызов, выполненный со стороны сервера или клиента), но мне нужно сохранить результат этого запроса в состоянии State компонента React вместо класса.
Я попытался сначала вызвать getInitialProps , а затем вызвать getDerivedStateFromProps , чтобы сохранить в состоянии данные, которые были введены при вызове функции Intial props.
Может ли это быть плохой практикой или привести к некоторым проблемам при запуске рендеринга на стороне сервера?
Пример:
static async getInitialProps() {
const data = await getUserCollection();
return {
userCollection: data,
}
}
static getDerivedStateFromProps(nextProps, prevState) {
if(nextProps.userCollection !== prevState.myStateCollection) {
return ({
myStateCollection: nextProps.userCollection,
})
} else {
return null;
}
}
Определения состояния и реквизита (машинопись):
interface Props {
userCollection: UserEntity[],
}
interface State {
myStateCollection : UserEntity[];
}