next.js/examples/with-apollo-and-redux/pages/redux.js
redux.js47 lines900 B
import { useDispatch } from "react-redux";
import { initializeStore } from "../lib/redux";
import useInterval from "../lib/useInterval";
import Layout from "../components/Layout";
import Clock from "../components/Clock";
import Counter from "../components/Counter";

const ReduxPage = () => {
  // Tick the time every second
  const dispatch = useDispatch();

  useInterval(() => {
    dispatch({
      type: "TICK",
      light: true,
      lastUpdate: Date.now(),
    });
  }, 1000);

  return (
    <Layout>
      <Clock />
      <Counter />
    </Layout>
  );
};

export async function getStaticProps() {
  const reduxStore = initializeStore();
  const { dispatch } = reduxStore;

  dispatch({
    type: "TICK",
    light: true,
    lastUpdate: Date.now(),
  });

  return {
    props: {
      initialReduxState: reduxStore.getState(),
    },
    revalidate: 1,
  };
}

export default ReduxPage;
Quest for Codev2.0.0
/
SIGN IN