我有一个场景,我是否想获得调用 getInitialProps (从服务器或客户端执行的异步调用)的好处,但是我需要将该查询的结果存储在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[];
}