reactjs - 反应树父节点更新
问题描述
我在反应中创建了一个自定义树面板。每次我更新我选择的树节点(状态)。现在我想在选择孩子时更改根的颜色。我想用 refs 来做,为所有 TreeNode 添加它,然后在 React 中使用 DOM 操作来获取它(据我所知ReactDom.finddomnode
)我有 2 个组件 Tree 和 TreeNode Tree 的部分代码
Tree.js
<TreeNode ref={(el) => this.treeRef = el}
事件单击是 TreeNode 组件中的句柄。现在我想抓住这个事件并更新我的根。使用 ReactDom.findDomNode 时出现错误。任何想法
解决方案
您应该使用状态来显示根的颜色。使用 ref 然后操作 DOM 节点来完成这样一个简单的任务违背了 React 的目的。Refs 在特殊情况下使用,这可以使用 react 的 state/props 来完成。
我不知道您对 Tree 的实现,但作为示例,您可以执行以下操作:
render() {
return <div style={{backgroundColor:this.state.bgColor}}>
</div>
}
changeBGColor(color) {
this.setState({bgColor:color})
}
现在您可以将changeBGColor
方法传递给孩子,然后孩子可以调用它来进行适当的颜色更改。由于我对您的实施信息有限,我无法为您提供确切的解决方案,但我希望这会有所帮助。
推荐阅读
- unit-testing - 在 bazel 测试中设置优先级
- python - 从 pdf 表 PYTHON 中提取单元格的图像
- java - 为什么 Jaxb Unmarshalling 因错误意外元素而失败。预期元素是(无)
- solr - Solr 中继器 ReplicationHandler 异常
- python - 如何在opencv中检测和跟踪视频帧区域中最亮的颜色轮廓?
- macos - 签署 Adobe AIR 强化运行时时出现 OSX 错误
- python - tfx.orchestration.experimental 没有属性“get_default_kubeflow_metadata_config”
- python - 如何在while循环中保持变量固定
- mongodb - Mongo DB Spark 连接器
- java - 如何在 Java 中读取 Pop3 服务器内的入站电子邮件消息