- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定如何在标题上准确地表达出来,因为问题在我的场景中太具体了,但无论如何基本上我有两个类似于下面的外部类:
class Config {
public level: number = 1; //this is a sample state I want to pass
//sets level
public setLevel(level: number){
this.level = level;
}
}
//wrapper class that uses Config class as a property
class Manager {
public config: Config = new Config();
//invokes Config.setLevel() here, but wrapped
public nextLevel(level: number){
this.config.setLevel(level)
}
}
然后我的 react 组件是:
//here is my parent component using Manager
class ParentComp extends React.Component<any, any>{
public mngr: Manager = new Manager(); //uses Manager as a property
constructor(props: any){
super(props);
this.state = { config: this.mngr.config }; //adds the Manager instance's property as a state
}
public render(){
//passes the state to a child component
return(
<div> <ChildComp level={this.state.config.level}/> </div>
)
}
//this is where I simulate changing the level property using the external class(es)
componentDidMount(){
setTimeout(()=>{
this.mngr.nextLevel(2); //invoke external class method that changes the source object
console.log('1 sec has passed and a new level has been set.')
}, 1000)
}
}
class ChildComp extends React.Component<any, any>{
constructor(props: any){
super(props);
this.state = {level: props.level} //uses the prop to the child's state
}
}
基于 React 开发工具,
ParentComp
上的
componentDidMount
确实会更改 ParentComp.config.level
,但不会更改 ChildComp.level
.
为什么以及该怎么做?我有 Vue 背景,通常 Vue 会自动处理这些事情。我不明白为什么它不适用于 React。
最佳答案
您没有在实现中使用 setState
属性,这就是没有更改的原因。
关于javascript - react : passing parent state to child when the parent state is sourced and modified from external classes acting as a property in the parent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57848479/
我不太明白单元测试中模式的安排部分和行为部分之间的区别。 Arrange ONLY 是否意味着对象的创建?为什么我们首先要将 Arrange 与 Act 部分分开,以及决定某物是否属于 Act 而不是
我有一个问题...我正在制作一个关于 GIS 的简单程序,当我尝试将它从 eclipse 启动到我的设备时,我在检查控制台时收到警告。 ActivityManager: java.lang.Secur
当对单个逻辑操作的结果和/或副作用进行单元测试时,您如何保持代码的 DRY?以 Jasmine 编写的以下示例为例: describe("frobnicate", function () { va
我对编码相当陌生,但在编译时(我使用 putty 和 SHH)我收到此错误 act.offective.c:631:警告:内置函数“abort”的隐式声明不兼容act.offense.c:637: 警
我有一个用 ASP.NET MVC (V 1.0) 编写的应用程序。该应用程序在 IIS7 上运行,DNS 由 GoDaddy 提供。 我想转发来自 http://mydomain.com/ctrlr
好的,我有一个设置了高度和宽度的简单 div。前后也设置了高度和宽度。它们都设置为显示为 block ,伪元素的内容为“”。 :before 在内容里面,而不是在它之前。:after 之前有一大堆奇怪
当我使用 dplyr 中的 filter 时,我很难理解 R 是如何处理 AND 和 OR 运算符的。 这里有一个例子来说明: library(dplyr) xy xy x y z 1 1 a
因此,在为我的 rails 应用程序搜索标记 gem 后,我发现了惊人的 acts-as-taggable gem 。安装它并玩转我发现它将所有标签保存在一个标签数据库中,它只保存 Tag.name
我有一个 azure 应用程序服务,可以从 azure ACR 中提取图像并启动该图像来运行应用程序。 我想要应用程序服务通过服务原则从 ACR 中提取图像的操作。我的问题是我应该将服务主体分配给哪个
问题 据我所知,清除 float 主要作用于父项。但是在帖子缩略图之后我的模板中存在一个问题,其中 clear: both 作用于整个内容包装器。如果不清除 float ,细线会粘在缩略图右侧的文本上
我试图显示一个带有子元素的 div 容器,只显示容器的顶部,直到鼠标移到它上面,然后显示带有内容的子元素的整个容器。这有点像我想要的那样工作,但问题是,如果您将鼠标移到任何子元素上,整个主容器会向上滑
我正在学习 ACT-R 独立 Windows 发行版中包含的教程文件。这不是任何学术作业的一部分;我正在努力学习认知建模和编写生产系统。我正在使用 Lispbox,一个 EMACS-SLIME-LIS
我正在尝试使用 Acts as votable gem 对帖子中的评论实现投票系统。在这个阶段我遇到了这个错误 ActionController::UrlGenerationError in Post
我最近在我的应用程序中用 acts_as_taggable_on 替换了 acts_as_taggable_on_steroids 并且我一直遇到一个问题,即 Rails 找不到与新插件关联的类。我认
我需要一种功能,允许将消息异步推送到我的 PublishSubject 并通过 ConnectableObservable 以一定的速度(实际上是一个接一个)处理它们。不幸的是,在底层的Subscri
我读过的所有教程都是这样的: class HelloWorldActor extends Actor { def receive = { case "Hello" => self.repl
我在我的 GUI 的一部分上进行了以下基本设置: 一个JScrollPane在其上,带有 BoxLayout 的 JPanel (new BoxLayout(tablePanel, BoxLayout
当我运行游戏并单击屏幕退出启动画面时,它应该将我带到主菜单,但它只是卡住了。我找到了错误告诉我的代码行,但没有帮助。(MainMenu.java:124) 该行仅显示 stage.act();比 st
我有一堆 Tomcat 8.0.15、Apache 2.2.29 和 mod_jk 1.2.40 (win2003 serv) 在 http 响应状态文本中,我得到 “200 ACT”。不是标准的 h
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我是一名优秀的程序员,十分优秀!