如何在 React Redux 应用程序中使用装饰器?

2024-01-08

我正在使用 React Redux 创建简单的应用程序。我想使用装饰器在我的组件中注入一些方法。我在其他项目中看到了类似的代码:

import React, { Component } from 'react';
import { connect } from 'react-redux';


@creatable
export default class BookDetails extends Component {

  render() {
    console.log(this.props);
    if (!this.props.Activebook) {
      return <div> please select book</div>
    }
    return (
        <div>{this.props.Activebook.title}</div>
    );
  }
}


function creatable() {
  return Create => {
    @connect(state=>({Activebook : state.ActiveBook}))
   class MyDecorator extends Component {
     render() {
       console.log('>>>>>>>>>>>>>');
    console.log(this.props);
       console.log('>>>>>>>>>>>>>');
       return (
         <div>
           <Create
              {...this.props}
           />
         </div>
       )
     }

   }
    return MyDecorator;
  }
}

不幸的是上面的代码不起作用。为什么?


请注意,我们不建议使用装饰器来连接组件。 您在官方文档或示例中找不到它们。

仅仅因为一些社区示例使用它们并不意味着这是一个好主意:规范仍在变化,工具支持很不稳定,坦率地说,你不需要装饰器connect()因为它们对简单的函数调用进行脱糖处理。

例如,而不是

@connect(mapStateToProps)
class MyComponent extends Component {}

你应该写

class MyComponent extends Component {}
MyComponent = connect(mapStateToProps)(MyComponent)

这样,在提案成为语言的一部分之前,您不必担心它们会被破坏。

我建议您遵守我们在官方 Redux 示例 http://redux.js.org/docs/introduction/Examples.html对于采用实验性语法扩展要非常谨慎。

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

如何在 React Redux 应用程序中使用装饰器? 的相关文章

  • Yeoman-Angular 生成的应用程序中缺少 Angular 脚本

    我已经使用 Yeoman Angular Generator 生成了一个应用程序 但项目中缺少 angular js 和其他 Angular 文件 我可以在 Bower json 文件中看到这些依赖项 如下所示 name mi portfo
  • Jqplot 中两个系列数据的不同颜色条

    我想知道如何在 Jqplot 中为两个系列制作不同的颜色条 如果我只有一个系列数据 它的工作原理如下图所示 红色和绿色基于其值 但是 如果我有两个系列数据 我无法为每个系列数据配置两个系列颜色 目前我只能做这个图 我希望两个系列图可以根据其
  • JS如何获取多维数组的最大深度?

    我有一个多维数组 我想知道它的最大深度 我发现了这个灵魂 但它不适用于对象数组 const getArrayDepth arr gt return Array isArray arr 1 Math max arr map getArrayD
  • 将字符串转换为变量名。 (JavaScript)

    我确实查看了前面的问题 但它们是针对整数值的 我需要文本值的答案 我在本周早些时候问了一个与此相关的问题 但现在是这样 如下所示 我使 Make x 等于某个字符串值 Acura Honda Toyota 当我将 Make x 传递到函数
  • TypeScript 中类和命名空间的区别

    到底有什么区别classes and namespaces在打字稿中 我知道 如果您创建一个带有静态方法的类 您可以在不实例化该类的情况下访问它们 这正是我猜想的命名空间的要点之一 我还知道你可以创建多个同名的命名空间 并且它们的方法在编译
  • Ember.js 数组作为模型的属性

    干杯 我有一些模型 它的一个属性是一个数组 但由于某些原因 我在服务器上使用 mongoDB 并且它是嵌入式模型和 ember data 的问题 我不能做这样的事情 App Foo DS Model extend numbers DS ha
  • Angular 7 Guard 重定向仅适用于双击

    问题是我已经实现了一个 Guard 旨在处理特定的目录 如果当前用户名的角色等于 2 它应该返回 true 如果没有 那么它不应该重定向 这是我的 app routing module ts 文件 问题出在 userlist 路径中 我们是
  • AttachEvent 或 addEventListener - 存储在哪里?

    在 jQuery 中 如果我这样做 a click function Do something 点击事件存储在 a data events 我可以像这样获取它 jQuery each a data events function i eve
  • jQuery UI 对话框使用 setTimeout 自动关闭

    我试图让对话框在打开后三秒自动关闭 我尝试过以下方法 setTimeout mydialog dialog close 3000 这是在上下文中 acknowledged dialog dialog height 140 modal tru
  • contenteditable 在 safari 中不起作用,但在 chrome 中起作用

    我有一个奇怪的问题 这在 chrome 中按预期工作 但在 safari 中它只会发光 但不会对按键输入做出反应 这是触发文本版本的方法 var namebloc event currentTarget find column filena
  • jQuery 问题:它的真正含义是什么?

    function window undefined jquery code jQuery window 它到底意味着什么 是不是也意味着 document ready 或者只是两种不同的东西 已经有两个答案 但这是我对代码缺失端的猜测 fu
  • Angular UI.Bootstrap 单选按钮在 ng-repeat 中表现得很奇怪[重复]

    这个问题在这里已经有答案了 我在 Angular 的 ui bootstrap 中动态生成无线电模型的选项时遇到问题 我想我可以简单地对数组进行 ng repeat 使用 btn radio 属性的内容 如下所示 in the contro
  • Phonegap应用程序与reactjs [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有人用reactjs 通过facebook 编写了phonegap应用程序吗 任何指向参考实现的指针将不胜感激 此外 您建议将什么数据
  • 从 UnityWebGL jslib 返回字符串

    我想使用 jslib 来获取网址参数 像这样的代码 jslib GetUrl function var s var strUrl window location search var getSearch strUrl split var g
  • 传单 - 导入 Geojson - Angular 6

    我尝试将 GeoJson 文件导入到 Angular 的应用程序 6 中的传单中 通过这个解决方案 我的 geojson 是在 leafletmap 中绘制的 但我有这个错误 我无法构建我的应用程序 有人知道一种解决方案吗 错误 TS234
  • Node.js - Async.js:并行执行如何工作?

    我想知道 async js 中并行执行是如何工作的 async require async async parallel function callback for var i 0 i lt 1000000000 i Do nothing
  • 当 jQuery .remove() 用于删除脚本标签时,它是否会清除加载的 JavaScript?

    正如标题所示 如果我使用以下命令从 DOM 中删除脚本标签 scriptid remove javascript 本身是保留在内存中还是被清除了 或者 我完全误解了浏览器处理 javascript 的方式吗 这是很有可能的 对于那些对我提问
  • 如何制作饼图聚合数据源?

    Using 适用于 ASP NET MVC 的 Kendo UI 完整版 http www kendoui com 版本 2013 3 1119 2013年11月20日 如果我有这段代码 status chart kendoChart da
  • 相当于 JavaScript 中 Ruby 的each_cons

    许多语言都曾提出过这个问题 但 javascript 却没有 Ruby 有方法Enumerable each cons https devdocs io ruby 2 5 enumerable method i each cons看起来像这
  • 通过jquery ajax()和serialize()提交html表单

    我想通过 jquery ajax 提交此表单 这是我所做的 但它不起作用 即表单正在提交并刷新页面 但我没有看到响应 即在同一页面上打印数组 HTML

随机推荐

  • Android“后退”按钮操作

    我可以将默认 Android 后退 按钮的操作分配给另一个按钮吗 我的意思是 无需编写代码 是否有预定义的 返回 方法 Thanks 按钮添加的onClickonBackPressed public void onClick onBackP
  • 在命令行上获取 git-commit-ids

    跑步时git commit fixup beefca7e或者当在提交消息中引用先前的提交时 我必须在笨拙的工作流程中使用鼠标 我使用bash 打开一个新的终端选项卡 窗口 窗格 git log oneline graph 扫描列表以查找相关
  • 如何增加UIProgressView的高度

    我正在创造UIProgressView from nib 我想增加它的高度 但它固定为 9 对于iPad我需要增加它的高度 怎样才能做到呢 使用 CGAffineTransform 更改尺寸 CGAffineTransform transf
  • 哪个先出现——finally 还是 catch 块?

    考虑以下测试用例 public class Main static int a 0 public static void main String args try test System out println test2 catch Ex
  • 获取 og:image 元属性的最佳方法是什么[重复]

    这个问题在这里已经有答案了 我正在尝试在我的网站中显示 rss feed 链接 一切顺利 但需要很长时间才能获得og image财产通过使用file get contents 方法 还有其他方法可以获取元标记属性吗 Python 有助于更快
  • 如何将 JSONObject 转换为自定义 Java 类?

    在Java中 使用 json simple https code google com p json simple 我已经成功解析了使用 JSON stringify 在 JavaScript 中创建的 JSON 字符串 它看起来像这样 t
  • 所有 SuppressWarnings 值? [复制]

    这个问题在这里已经有答案了 如果有一个包含可以与 java 中的 SuppressWarnings 一起使用的所有值的列表 那就太好了 如果这些值取决于编译器 可以说 netbeans 中的 ant 那么 ant 不应该提供所有支持值的完整
  • 执行 expo build:ios 时 Apple Developer Portal 中的身份验证失败

    我正在尝试自动配置通过 Gitlab CI 使用 Expo 构建 iOS 应用程序 这是我正在使用的命令 expo login u expo user p expo pass expo build ios non interactive a
  • JSF MVC 框架中的 MVC 是什么组件?

    JSF MVC框架中谁是模型 视图和控制器 这取决于观点 双关语 在总体架构图中 您自己的 JSF 代码是V M 业务领域 服务层 例如EJB JPA DAO V 您的 JSF 代码 C FacesServlet 在开发人员图中 架构V又可
  • 为什么 ASCII 表中大写字母位于小写字母之前?

    在我的一次面试中 面试官问我为什么ASCII表中大写字母在小写字母之前 我在google com上搜索但没有找到任何结果 有人能给我答案吗 多谢 我只是猜测 但我想这是因为最早的字符集根本没有小写字母 Baudot 电报码只有 5 位 CD
  • 从图像文件夹加载数组 - xcode

    我在将图像从文件加载到数组中时遇到一些问题 我使用了我在这里找到的问题的组合 但我没有想法 我对 Objective C 很陌生 对其余的都生疏了 我的 viewDidLoad 只是调用我的 showPics 方法 并且为了测试目的 我让
  • 如何在map函数中使用useEffect?

    我在 Firebase 中有两个表 Vouchers 和 ClaimedVouchers 我正在尝试显示未出现在 ClaimedVouchers 表中的优惠券 因此 我有一个查询获取所有优惠券 然后另一个查询检查它们是否已被认领 如果已认领
  • docker数据量与挂载的主机目录

    我们可以在docker中拥有一个数据卷 docker run v path to data in container name test container debian docker inspect test container Moun
  • 如何结合 constexpr 和矢量化代码?

    我正在为 x64 和 neon 开发 C 内在包装器 我希望我的函数是 constexpr 我的动机类似于Constexpr 和 SSE 内在函数 https stackoverflow com questions 51880079 con
  • 如何让 foo.somedomain.com 由 appengine 上的 myapp.appspot.com/foo 处理

    这就是我想要实现的目标 http foo somedomain com http foo somedomain com被处理http myapp appspot com foo http myapp appspot com foo 谷歌应用
  • Python 值错误:没有足够的值来解压

    代码中出现以下错误 不确定这意味着什么或我做错了什么 只是尝试将三个列表值初始化为空集合 nba nfl mlb ValueError not enough values to unpack expected 3 got 0 问题是 左侧值
  • Nokogiri 支持哪个版本的 xpath?

    我找不到 Nokogiri 支持的 xpath 版本的官方声明 有人可以帮我吗 事实上 我想提取一些具有以指定子字符串开头的属性的元素 例如 我想获得所有Book元素具有category属性以字符开头C 如何使用 nokogiri 做到这一
  • 确定 R 中的嵌套级别?

    有没有一种简单的方法 即函数 来确定列表中的嵌套级别 我知道有str可以用来获取此信息 但有没有什么东西可以简单地返回结果呢 我可以使用这样的函数来获取所有级别的名称 递归 吗 一个小的递归函数可以为你做到这一点 depth lt func
  • 找不到已连接的设备。模拟器启动失败:无法通过提供的索引或标识符解析指定的连接设备。

    我正在学习 NativeScript 并且 跑步时tns platform add android我收到以下错误 我按照这个步骤 以管理员身份运行命令提示符 powershell NoProfile ExecutionPolicy unre
  • 如何在 React Redux 应用程序中使用装饰器?

    我正在使用 React Redux 创建简单的应用程序 我想使用装饰器在我的组件中注入一些方法 我在其他项目中看到了类似的代码 import React Component from react import connect from re