我是下一个新手,几天以来一直在尝试为基于下一个类的组件设置样板代码并反应 redux。
到目前为止我尝试了什么
_app.js
import "../assets/css/generic.css";
import Nav from "../Components/Nav/Nav";
import { Provider } from "react-redux";
import thunk from "redux-thunk";
import { reduxSoldierMiddleware } from "redux-soldier";
import { createStore, applyMiddleware, compose } from "redux";
import { clientMiddleware } from "../redux/stores/middleware";
import reducers from "../redux/stores/index";
import withRedux from "next-redux-wrapper";
import "bootstrap/dist/css/bootstrap.min.css";
const logger = store => {
    return next => {
        return action => {
            const result = next(action);
            return result;
        };
    };
};
const composeEnhancers = compose;
const store = createStore(
    reducers,
    // window.REDUX_DATA,
    composeEnhancers(
        applyMiddleware(
            clientMiddleware(),
            thunk,
            reduxSoldierMiddleware,
            logger
        )
    )
);
function Layouts({ Component, pageProps }) {
    return (
        <Provider store={store}>
            <Nav />
            <Component {...pageProps} />
        </Provider>
    );
}
Layouts.getInitialProps = async ({ Component, ctx }) => {
    const pageProps = Component.getInitialProps
        ? await Component.getInitialProps(ctx)
        : {};
    //Anything returned here can be accessed by the client
    return { pageProps: pageProps };
};
const makeStore = () => store;
export default withRedux(makeStore)(Layouts);
index.js
import React, { Component, Fragment } from "react";
import { Container } from "react-bootstrap";
import { connect } from "react-redux";
import * as UniversitiesActions from "../redux/actions/UniversitiesActions";
import * as StatesListActions from "../redux/actions/StatesListActions";
import _ from "lodash";
class Home extends Component {
    async componentDidMount() {
        await this.props.loadUniversities();
        await this.props.loadStatesList();
    }
    render() {
        return (
            <Fragment>
                <div className="header_bg header_generic_bg">
                    <Container>
                        <h1>Find Universities and Courses in Australia</h1>
                        <p>
                            There are {this.props.universities.length}{" "}
                            universities in Australia
                        </p>
                        <div className="searchcourse"></div>
                    </Container>
                </div>
            </Fragment>
        );
    }
}
const mapStateToProps = state => {
    return {
        stateslist: state.statesliststore.stateslist,
        universities: state.universitiesstore.universities,
        isLoading: state.universitiesstore.isLoading
    };
};
const mapDispatchToProps = dispatch => {
    return {
        loadUniversities: () =>
            dispatch(UniversitiesActions.loadUniversities()),
        loadStatesList: () => dispatch(StatesListActions.loadStatesList())
    };
};
export const loadData = async (store, match) => {
    await store.dispatch(
        UniversitiesActions.loadUniversities(),
        StatesListActions.loadStatesList()
    );
};
export default connect(mapStateToProps, mapDispatchToProps)(Home);
与上面的代码一样,我在安装组件时加载大学和州数据。在查看页面源代码时,我没有看到服务器呈现的 html。