На основании этой информации из официальных документов Next JS они рекомендуют использовать getServerSidedProps и getStaticProps вместо getInitialProps.
Я хочу предварительно загрузить некоторые данные в состояние Redux на сервере.
note : я использую пакет @ redux / toolkit
Итак, у меня есть базовая c настройка магазина:
import reducer from './reducer' // this is just a combineReducers ...
export const store = configureStore({ reducer });
My custom _app. js
import { store } from '../store'
<Provider store={store}>
<Component {...pageProps} />
</Provider>
Теперь вот проблема, с которой я сталкиваюсь
В файле индекса. 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: {} }
}
Данные установить в хранилище на стороне сервера, однако, когда я нахожусь на клиенте, хранилище пусто. Кто-нибудь знает, как я могу предварительно загрузить данные на сервере? Я не хочу использовать useEffect для componentDidMount и установить эти данные на клиенте. Я знаю, что есть библиотека, которая решает эту проблему, но вместо этого она использует getInitialProps, и я хотел бы посмотреть, можно ли что-то сделать таким образом.