将 React Redux 与 next.js 结合使用

2023-11-25

我尝试将 Redux 与next.js 启动器项目和我安装的next-redux-wrapper在该项目中,但我不确定该项目中的根文件在哪里。

我尝试按照显示的教程进行操作next-redux-包装器但没有成功。没变化。

请帮助我如何将 Redux 添加到项目中。

Regards.


Next.js 使用 App 组件来初始化页面。您可以覆盖它并控制页面初始化。

虽然此演示适用于 next.js,但它应该适用于 nextjs-starter。

安装 next-redux-wrapper:

npm install --save next-redux-wrapper

Add _app.js文件至./pages目录:

// pages/_app.js
import React from "react";
import {createStore} from "redux";
import {Provider} from "react-redux";
import App, {Container} from "next/app";
import withRedux from "next-redux-wrapper";

const reducer = (state = {foo: ''}, action) => {
    switch (action.type) {
        case 'FOO':
            return {...state, foo: action.payload};
        default:
            return state
    }
};

/**
* @param {object} initialState
* @param {boolean} options.isServer indicates whether it is a server side or client side
* @param {Request} options.req NodeJS Request object (not set when client applies initialState from server)
* @param {Request} options.res NodeJS Request object (not set when client applies initialState from server)
* @param {boolean} options.debug User-defined debug mode param
* @param {string} options.storeKey This key will be used to preserve store in global namespace for safe HMR 
*/
const makeStore = (initialState, options) => {
    return createStore(reducer, initialState);
};

class MyApp extends App {

    static async getInitialProps({Component, ctx}) {

        // we can dispatch from here too
        ctx.store.dispatch({type: 'FOO', payload: 'foo'});

        const pageProps = Component.getInitialProps ? await Component.getInitialProps(ctx) : {};

        return {pageProps};

    }

    render() {
        const {Component, pageProps, store} = this.props;
        return (
            <Container>
                <Provider store={store}>
                    <Component {...pageProps} />
                </Provider>
            </Container>
        );
    }

}

export default withRedux(makeStore)(MyApp);

然后,可以简单地连接实际的页面组件:本演示如何连接index.js在页面中。

import Link from "next/link";
import React from "react";
import {
  Container,
  Row,
  Col,
  Button,
  Jumbotron,
  ListGroup,
  ListGroupItem
} from "reactstrap";
import Page from "../components/page";
import Layout from "../components/layout";

import { connect } from "react-redux";

class Default extends Page {
  static getInitialProps({ store, isServer, pathname, query }) {
    store.dispatch({ type: "FOO", payload: "foo" }); // component will be able to read from store's state when rendered
    return { custom: "custom" }; // you can pass some custom props to component from here
  }
  render() {
    return (
      <Layout>content...</Layout>
    );
  }
}

export default connect()(Default);

请参阅文档了解更多信息:next-redux-包装器

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 React Redux 与 next.js 结合使用 的相关文章

  • 如果Functions是javascript中的对象,为什么function.constructor指向Function而不是Object?

    当像这样从窗口对象创建以下函数时 function userInfo 既然函数是对象 为什么 userInfo constructor 显示 Function 而不是 Object 当使用以下内容时 它甚至显示函数而不是对象 Functio
  • 将图像缩略图上传到服务器,而不上传整个图像

    据我所知 我在这里问的是不可能的 但我想无论如何我都会问 以防我遗漏了什么 假设您想让用户上传 JPG 图像 并且这些图像被缩放为较小的图标 并且原始图像始终被丢弃并且不再需要 有没有什么方法可以在大多数现代浏览器中普遍使用 让用户选择硬盘
  • MUI 组件上的渐变边框

    我没能找到相当于border image source css 我的目标是在按钮组件上渲染边框渐变 这是添加渐变边框的方法button成分 V5 const options shouldForwardProp prop gt prop gr
  • 流媒体性能 - Canvas 与

    我正在开发一个应用程序 需要通过 webSocket 连接以每秒至少 30 帧的速度持续传输图像 我遇到了一些性能问题 并希望尽我所能进行优化 我想知道使用不断更新的图像之间的性能差异是什么 就像这样 img src someDynamic
  • Node.js Google-云存储上传目的地规范

    我有一个 Node js 服务器并且正在使用谷歌云上传一些图像文件的包Firebase 存储 上传本身工作正常 但 google cloud API 似乎只能将文件上传到 Firebase Storage 根文件夹 有没有办法指定远程位置来
  • 如何使用 Underscore 获取 JavaScript 数组中的重复项

    我有一个数组 我需要重复的项目并根据特定属性打印这些项目 我知道如何使用 underscore js 获取唯一项目 但我需要找到重复项而不是唯一值 var somevalue name john country spain name jan
  • 使用 Charts.js 禁用动画

    我在使用 Charts js 关闭动画时遇到一些问题 这是我的代码 var pieData value 30 color F38630 value 50 color E0E4CC value 100 color 69D2E7 var myP
  • 如何获得相对于特定父级的偏移量?

    我想获取元素相对于的偏移量特定的父母不是直接的 也不是文档 我在互联网上查找并找到了offset http api jquery com offset and position http api jquery com position jQ
  • 内联执行生成的汇编程序

    我正在阅读以下演示文稿 http wingolog org pub qc 2012 js slides pdf http wingolog org pub qc 2012 js slides pdf其中讨论了 4 10 19 内联 ASM
  • 无法提取 Typescript 中的对象值

    我一直在尝试将 JavaScript Web 表单转换为 Typescript 但无法弄清楚如何处理以下内容 在 JavaScript 中有效 let fieldValues JSON parse cookieData let keys O
  • Backbone.js 应用程序可以逐步增强并可供搜索引擎抓取吗?

    我需要为我的下一个项目实现一个 MVC JavaScript 框架 但它既是一个网站 又是一个 Web 应用程序 是否可以公开数据服务器端 然后解析 URL 以显示 JS 版本 我计划使用 Rails 作为服务器端代码 我写了一个关于这个主
  • 如何从Web JavaScript应用程序获取桌面C#程序中的变量

    我遇到一个问题 有两个应用程序 一种是 C 中的桌面应用程序 另一种是 javascript 中的 Web 应用程序 运行桌面应用程序中的一些变量或信息需要传输到Web应用程序 有谁知道如何解决这个问题 有人愿意提供更多细节来解决这个问题吗
  • 如何使用javascript从特定标签获取HTML文档中的所有textNode?

    如何在不使用xpath或treewalker的情况下从单个数组中的一组特定标签中获取所有textNodes blockquote em h4 h6 p IE不允许您使用xpath和treewalker 请帮助我 如果脚本仅适用于 IE 那就
  • 如何与使用 child_process.spawn 创建的新创建的服务器交互

    我正在尝试为我的私人托管的 反恐精英全球攻势 服务器制作一个前端 当我点击运行服务器时 在前端 一切正常 服务器启动并记录到控制台 但是如何查看服务器IP地址 服务器中的玩家等信息呢 这是我到目前为止运行服务器的内容 router post
  • 用于图形操作的 Javascript 库

    有没有建议的 javascript 替代 pythonpygraph http code google com p python graph or NetworkX http networkx lanl gov 应该注意的是 可视化不是必需
  • jQuery 单击附加元素不起作用

    我有一个数组 我正在从 Array 获取数据并在 jQuery Append to list 中使用它 但是当我单击列表项时 它只显示最后一个元素 var array 1 2 7 3 4 8 5 6 9 for var i 0 i lt a
  • 限制线的长度

    我正在尝试画一条代表 弹弓 的线 并且希望它具有最大拉伸长度 在 p5 中 我在位置和位置之间画了一条线 line posA x posA y posB x posB y posA 是鼠标 x 和 y posB 是画布上圆的位置 我想要做的
  • 在 Sublime Text 下获取完整的 JS 自动补全

    我刚刚在 Windows Vista 下安装了 Sublime Text 甚至遵循了中给出的建议这个帖子 https stackoverflow com questions 10636410 modifying sublime text 2
  • gatsbyjs、reactjs - 为什么组件渲染两次而图像没有出现?

    我是新来的gatsbyjs并使用 v2 我有 3 个组件 加载器 标题和布局 layout js import React from react import Helmet from react helmet import StaticQu
  • javascript:获取带有单位的CSS prop值[重复]

    这个问题在这里已经有答案了 我的代码是这样的 image 1 position absolute top 3vw 我的尝试 http jsfiddle net z8k6t3fb 1 http jsfiddle net z8k6t3fb 1

随机推荐

  • Windows XP 与 Vista/7 上的 MS Crypto API 行为

    我试图了解如何在 XP Vista 和 Windows 7 上从 PEM 格式 示例包含在下面的代码中 导入公钥 示例代码将在 XP 和 Windows Vista 7 上导入密钥 但不会一样的方法 在 Windows XP 上 字符串 原
  • 使用 ADFS 声明使用 .Net MVC 授权属性重定向循环

    我在使用 Net MVC 5 应用程序配置 ADFS 时遇到问题 我已经在 VS 2015 中将我的项目配置为使用声明 它工作正常 但我有一个问题 我可以使用 ADFS 登录 我可以检查用户角色等 当我尝试使用时出现问题 Authorize
  • 获取浏览器选项卡索引/Id

    那么目前大多数浏览器都有Tabs的功能 有没有办法获取Tab索引呢 所以选项卡 1 中打开了 www google com 选项卡 2 中打开了 www google com 有没有办法识别选项卡索引是什么 伪代码 if tab 2 ale
  • 使用 Mechanize 和 Nokogiri 保存图像?

    我正在使用 Mechanize 和 Nokogiri 来收集一些数据 我需要保存根据每个请求随机生成的图片 在我的尝试中 我被迫下载所有图片 但我真正想要的唯一一张是位于div specific 此外 是否可以从它生成 Base64 数据
  • 带有 4 个 MediaPlayers 的 Android 4.2 =“无法播放此视频”

    每当我尝试加载至少 4 个媒体播放器时 其中一个会损坏它尝试加载的视频并触发 Android 操作系统消息 无法播放此视频 其他信息 对于 3 个媒体播放器 一切正常 在其他 Android 版本上 与 4 2 不同 相同的代码可以使用相同
  • C语言中如何获取目录的大小?

    是否有一个 POSIX 函数可以给我一个目录 包括所有子文件夹 的大小 大致相当于 du s somepath man nftw NAME ftw nftw 文件树行走 描述 ftw 遍历目录树 位于该目录下 dirpath 并调用fn 每
  • runif() 是否真的有一个范围:0<= runif(n) <= 1,如文档中所述?

    我是 R 新手 但文档指出 runif n 返回 0 到 1 范围内的数字 这令我感到惊讶包括的 我期望 0 我用 n 100 000 000 对其进行了测试 发现它从未产生 0 或 1 我意识到实际达到浮点特定值的概率非常小 但仍然 之间
  • 在magento中发送邮件

    如何在magento中发送电子邮件 在索引控制器中编写操作 我的索引控制器 public function postAction post this gt getRequest gt getPost if post exit transla
  • 如何在 bash 脚本中使用 bash 配置文件中定义的函数?

    我的 bash profile 中有一个投影函数 现在我尝试从 bash 脚本调用此函数 但出现未找到错误 如何使投影函数对 bash 脚本可见 您必须导出该函数 export f foo ref
  • Firebase 挂起的动态链接不起作用

    根据 Firebase 动态链接文档 即使未安装应用程序 如果用户在设备上打开链接 Appstore 上的应用程序页面也会打开 并且一旦安装应用程序 应用程序就会在首次启动时处理该链接 经过一番调查后 我发现 Firebase 有一种称为
  • “在 MATLAB 路径中隐藏它”是什么意思?如何在文件中做到这一点?

    我需要在运行 unitTester 文件之前始终执行此操作 我不明白为什么需要这样做 这是什么意思 为什么是 Add to Path gt Selected Folders and Subfolders 不够 Update This her
  • 如何定位直接文本而不是标签内的文本?

    有没有办法只定位直接文本 h1 Tag 这是我想做的事情的一个例子 h1 I want to select this text with a css selector h1 h1
  • Swift 中的 UTTypeCreatePreferredIdentifierForTag 和 CFStringRef

    import Foundation import MobileCoreServices func checkFileExtension fileName NSString println fileName var fileExtension
  • RecyclerView notificationItemRangeChanged 不显示新数据

    我遇到了一个问题RecyclerView Adapter关于notifyItemRangeChanged 看来如果Adapter认为它的大小为0从上次通话到getItemCount 然后我打电话Adapter notifyItemRange
  • git 拒绝在没有代理的情况下连接

    我在 Windows 环境中使用 Linux 系统 为了使用 NT 代理服务器进行身份验证 我进行了设置cntlm并配置系统程序以通过设置使用它http proxy环境变量中的 etc environment file 现在我想删除此代理设
  • 在 Pyspark Dataframe 上透视字符串列

    我有一个像这样的简单数据框 rdd sc parallelize 0 A 223 201603 PORT 0 A 22 201602 PORT 0 A 422 201601 DOCK 1 B 3213 201602 DOCK 1 B 321
  • 如何在 swift 中使用 .a 静态库?

    我想在 swift 中使用我的 webrtc a 静态库 你能帮忙吗 我读到你不能在 swift 中使用静态库 是真的吗 你问的这个问题解决了吗 我今天也遇到这个问题了 一会儿就解决了 如果您尚未解决此问题 您可以尝试以下步骤 p s 这两
  • 如何验证国际化域名[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想验证 php 中的域名 url 该域名可能采用国际化域名格式 如希腊语 域名 http 他们有什么方法可以使用正则表达式来验证它吗 这是一个所谓的国际化域名 支持 IDN 域
  • 通过浏览器操作/图标禁用/启用 Chrome 扩展

    我正在开发的 chrome 扩展将内容脚本和 CSS 插入到网站的每个页面上 但是 用户可能有一个或多个页面 他或她不希望扩展程序在其上运行 因此如果我可以将浏览器操作设置为基本上打开 关闭切换 那就太好了 我想做的是这样的 chrome
  • 将 React Redux 与 next.js 结合使用

    我尝试将 Redux 与next js 启动器项目和我安装的next redux wrapper在该项目中 但我不确定该项目中的根文件在哪里 我尝试按照显示的教程进行操作next redux 包装器但没有成功 没变化 请帮助我如何将 Red