【发布时间】:2020-07-31 12:17:45
【问题描述】:
基于 NextJS 官方文档中的 info,他们建议使用 getServerSidedProps 和 getStaticProps 而不是 getInitialProps。
我想在服务器上预加载一些数据到 Redux 状态。
注意:我使用@redux/toolkit 包
所以我有基本的商店设置:
import reducer from './reducer' // this is just a combineReducers ...
export const store = configureStore({ reducer });
我的自定义 _app.js
import { store } from '../store'
<Provider store={store}>
<Component {...pageProps} />
</Provider>
现在这是我面临的问题
在 index.js 文件中我有这样的东西
import { store } from '../store'
...
export const getServerSideProps = async (ctx) => {
const data = await fetchSomeData();
// here I add some data to the store
store.dispatch(someAction(data));
return { props: {} }
}
数据是在服务器端的存储中设置的,但是当我在客户端时,存储是空的。有谁知道如何在服务器上预加载数据?我不想使用 componentDidMount 的 useEffect 并在客户端上设置该数据。我知道有一个库正在解决这个问题,但它正在使用 getInitialProps 代替,我想看看是否可以通过这种方式完成。
【问题讨论】:
标签: reactjs react-redux next.js