Я использую следующий js с избыточным редукцией для рендеринга на стороне сервера, поэтому я сталкиваюсь с проблемой:
внутри моего getInitialProps. Я вызываю свое действие, которое вызывает API и возвращает данные обратно, данные. в консоли.
Вот мой код
страниц / индекс. js
import React, { Component } from "react";
import fetch from 'isomorphic-unfetch'
import {connect } from 'react-redux'
import { getTermsAction } from '../redux/actions/getTermsAction'
class TermsAndConditions extends Component {
static getInitialProps = async ({ reduxStore, req }) => {
await reduxStore.dispatch(getTermsAction());
return { custom: "custom" };
};
render() {
return <div ><p></p></div>;
}
}
const mapStateToProps = (state) => {
console.log(state);
return state;
};
export default connect(mapStateToProps,{getTermsAction})(TermsAndConditions);
, поэтому в getInitialProps я вызываю свое действие
import {TERMS_AND_CONDITION,TERMS_AND_CONDITION_SUCCESS} from '../actionTypes'
export const getTermsAction = () => {
return (dispatch) => {
fetch("http://18.221.214.116:4000/get_categories", {
method: "GET",
})
.then((res) => res.json())
.then((response) => {
console.log(response);
dispatch({ type: TERMS_AND_CONDITION_SUCCESS, payload: response });
})
.catch((err) => {
console.log("Eror in adding");
});
};
};
а затем мой редуктор
import {
TERMS_AND_CONDITION,
TERMS_AND_CONDITION_SUCCESS,
} from "../actionTypes";
const INITIAL_STATE = {
loading: false,
err: false,
data: [],
};
const fetchCategoryAndStory = (state = INITIAL_STATE, action) => {
switch (action.type) {
case TERMS_AND_CONDITION_SUCCESS:
return { ...state, loading: false, data: action.payload };
default:
return state;
}
};
export default fetchCategoryAndStory;
так как мне получить доступ к моим данным в страницах / индекс. js? я вижу свои данные в консоли в моем файле действий, но затем редуктор не обновляется никакими данными
то, что я вижу в консоли .log (состояние) всегда
{loading: false, ошибка: ложь, данные: массив (0)}