React Native:访问静态函数内的组件状态

2024-05-26

我有一个这样定义的组件

export class A extends Component{
   constructor(props){
     this.state = {
        scene:0
     }
   }
  static changeScene(scene){
     this.setState({scene:scene})
  }
}

我想使用以下方式从任何地方调用更改场景A.changeScene(sceneVal)更改 A 中的场景。问题是我无法访问 this.setState 我收到此错误Unhandled JS Exception: this.setState is not a function.

我确信 A 组件已经安装。我可以通过定义全局变量来绕过此错误var self = null;和构造函数内部self = this在构造函数中,但我想要一个更好的方法来解决这个问题


原因是,如果你使用static function then a static方法将无法访问this在该函数内。你应该避免使用static功能。Static方法无法访问在实例上定义的值、属性和方法class using this.

检查这篇文章:http://odetocode.com/blogs/scott/archive/2015/02/02/static-members-in-es6.aspx http://odetocode.com/blogs/scott/archive/2015/02/02/static-members-in-es6.aspx

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

React Native:访问静态函数内的组件状态 的相关文章

随机推荐

  • 单击任何 EditText 时屏幕向上滚动

    我有一个屏幕 有 4 个编辑文本 如菜单名称 菜肴名称 标签和价格 我需要在单击它时将我的标签 Edittext 设置为顶部 56dip 现在一切正常 当我单击标签 EditText 时 它会像我想要的那样向上移动 我卡在哪里 向上移动布局
  • Bootstrap 切换导航项在单击后保持打开状态

    我有简单的 Bootstrap 3 切换导航 ul class nav navmenu nav clearfix li class navmenu brand dropdown clearfix a href class dropdown
  • 发布包含下划线 (_) 的 url

    我发布的 url 参数包含下划线 sample http sdsdsds asasasahjhd com dsdsdsd login json 我这样发布 HttpClient httpclient new DefaultHttpClien
  • 高负载应用程序的数据库可扩展性?

    我见过一些应用程序拥有集群 Web 服务器 例如 10 到 20 个服务器 以具有可扩展性 可以在其中分发 在网络服务器之间加载 但我总是看到所有网络服务器都使用单个数据库 现在考虑任何电子商务或铁路 Web 应用程序 其中有数百万用户在任
  • json.Unmarshal json字符串到对象是空结果[重复]

    这个问题在这里已经有答案了 我有一个非常简单的程序 如下所示 package main import encoding json fmt type RunCommand struct level string json level call
  • 如何在 Android 上重复使用 AlertDialog 来表示是/否?

    我正在尝试找到重用显示自定义标题的对话框的方法 然后将 是 否 单击发送到启动该对话框的函数 我有两个按钮 保存 和 关闭 两者都调用 是 否 对话框 一个显示 您要保存 另一个显示 关闭更改吗 我认为我的程序非常 脏 但我想它可以工作 但
  • 如何在 C# 中重构 log4net 语句?

    好吧 读完丹本对此的回答后post https stackoverflow com questions 2230180 whats log4j actually doing when we turn on or off some log p
  • 在 foreach 循环中启动一个新线程

    我有一个对象列表 我想循环该列表并启动一个新线程 传入当前对象 我写了一个我认为应该这样做的例子 但它不起作用 具体来说 线程似乎在每次迭代中都被覆盖 但这对我来说并没有什么意义 因为我每次都会创建一个新的 Thread 对象 这是我写的测
  • jquery addClass() 不适用于 event.target

    请帮忙 为什么是jqueryaddClass 不与event target 我已经编写了一个代码 它应该在单击时在目标上添加类 但它不起作用 它说 e target addClass不是一个函数 http jsfiddle net Lq9G
  • Final 是否意味着覆盖?

    据我了解 override关键字表明给定的声明实现了一个基类virtual方法 如果没有找到匹配的基方法 编译就会失败 我的理解final关键字是它告诉编译器任何类都不能重写它virtual功能 So is override final多余
  • WPF DataGrid 显示点而不是逗号

    在网上查找并寻找答案后没有结果 我想向您寻求帮助 我有一个包含 2 列的 SQL 数据库表 浮点数据类型 例如 1 2 1 3 1 4 等 绑定到一个DataGrid XAML 代码
  • 随机化数组元素

    我有一个数组 number 1 2 3 4 5 6 7 8 9 现在 我想随机化数组内容 例如 5 3 2 6 7 1 8 请指导我如何继续 Use the shuffle方法 irb main 001 0 gt 1 2 3 4 5 shu
  • 在具有循环依赖关系的大型对象上调用 JSON.stringify 时出现“太多递归”错误

    我有一个包含循环引用的对象 我想查看它的 JSON 表示形式 例如 如果我构建这个对象 var myObject member myObject member child myObject member child parent myObj
  • Entity Framework 6 Code First 迁移 - 用于生产的多个分支

    在我的项目中 我们有一个分支模型 它有一个单独的开发分支 并且每个版本都有一个单独的分支 它可能看起来像这样 dev master r1 r2 因此 我们在 dev 上开发并将其合并到 master 然后创建一个发布分支 r1 r2 我们想
  • ng-repeat 插入空锚标记

    我正在尝试使用角度创建一个菜单 菜单项可以有子项 需要另一个 ng repeat 来打印子导航项 当尝试在第二个 ng repeat 中插入锚标记时 我注意到一些奇怪的行为 小提琴链接 http jsfiddle net npU7t htt
  • 有什么有效的方法可以将 XImage 数据转换为像素图(例如 RGB 四边形数组)?

    我正在尝试使用 XGetImage 捕获图像 一切都很好 但我需要将数据发送到需要 RGB 四边形数组的模块 对图像中的每个像素调用 XGetPixel 非常慢 在 i5 上 1440x900 分辨率为 0 5 秒 我在xlib中查找了XG
  • Pyinstaller - 从 os.system 调用 GDAL (gdal_translate)

    问候学识渊博的同学们 在 Windows 7 上运行 32 位 Python2 7 我有一个关于在 pyinstaller 构建中包含 GDAL 可执行文件的问题 我正在进行系统调用来运行 FWTools 版本中的两个 GDAL 函数 这些
  • 请放心,如何在 POST 请求后从响应正文中提取生成的令牌并将其设置到标头

    执行任何请求 我需要执行身份验证POST请求正文 username somename password somepass 标头Content Type application json这给了我一个带有生成令牌的响应 我需要将其粘贴为第二个标
  • 将 Node.js 升级到最新版本

    所以 我安装了 Node js 现在当我尝试安装 Mongoosejs 时 我收到一条错误 告诉我没有所需的 Node js 版本 我有 v0 4 11 需要 v0 4 12 我怎样才能升级到这个版本 我想我只能使用最新版本再次安装它 但在
  • React Native:访问静态函数内的组件状态

    我有一个这样定义的组件 export class A extends Component constructor props this state scene 0 static changeScene scene this setState