Я пытаюсь в следующем js использовать редукционный поток для рендеринга на стороне сервера, но я не могу обновить свое состояние редуктора.
Вот код
import { connect } from "react-redux";
import { termsAndConditionsAction } from "../redux/actions/getTermsAndConditions";
class TermsAndConditions extends Component {
render() {
return <div></div>;
}
}
TermsAndConditions.getInitialProps = async ({ store }) => {
await store.dispatch(termsAndConditionsAction());
return { custom: "custom" };
};
const mapStateToProps = (state) => {
console.log(state);
return state;
};
export default connect(mapStateToProps, {})(TermsAndConditions);
файл действий
import {
FETCH_TERMS,FETCH_TERMS_SUCCESS,FETCH_TERMS_FAIL
} from "../actionTypes";
import fetch from 'isomorphic-unfetch'
export const termsAndConditionsAction = () => {
return (dispatch) => {
dispatch({ type: FETCH_TERMS });
console.log('fetching')
fetch("http://localhost:3000/api/terms-and-conditions", {
method: "GET",
})
.then((res) => res.json())
.then((response) => {
// console.log('dddddddddddddddd',response) i am seeing the response in my server terminal
dispatch({ type: FETCH_TERMS_SUCCESS, payload: response.categoryName });
})
.catch((err) => {
console.log("Eror in adding", err);
dispatch({ type: FETCH_TERMS_FAIL, payload: err });
});
};
};
redurs
import {
FETCH_TERMS,FETCH_TERMS_SUCCESS,FETCH_TERMS_FAIL
} from "../actionTypes";
const getAllDetails = (state = [], action) => {
switch (action.type) {
case FETCH_TERMS:
return {...state,loading:true}
case FETCH_TERMS_SUCCESS:
return {...state,loading:false,data:action.payload}
case FETCH_TERMS_FAIL:
return {...state,loading:false}
default:
return state;
}
};
export default getAllDetails;
Итак, как мне увидеть, какие данные на стороне сервера отображали данные в моем файле внутри функции getInitialProps, чтобы они отображались на экране
и когда в моем Функция mapstatetoprops в консольном журнале (состоянии) я получаю
getAllDetails: {loading: true}
так почему мой редуктор застревает здесь?