reactjs - React.cloneElement 传递道具问题
问题描述
我正在使用 React.cloneElement 因为我想在模式上动态打开一个组件。但是由于我想在样式出现在模式中时控制样式,所以我决定使用 cloneElement。我附上了一个 CodeSand 演示,它将概括地描述我的代码。我的问题是我无法访问传递给克隆元素的道具(在CodeSand 示例中调用“测试” )。
任何想法为什么?我在这里缺少什么?
解决方案
发生这种情况是因为您正在使用包装组件,div
并且当您映射时,Children
它将在div
元素上而不是在Hello
组件中添加道具。
这是更新的代码:
import React from "react";
import { render } from "react-dom";
import Hello from "./Hello";
import Parent from "./Parent";
class App extends React.Component {
renderSomthing() {
return [<Hello />, <Hello />];
}
render() {
return <Parent>{this.renderSomthing()}</Parent>;
}
}
render(<App />, document.getElementById("root"));
工作沙箱:https ://codesandbox.io/s/awesome-maxwell-cwt53?file=/index.js:0-343
推荐阅读
- java - 如何在 Java 中训练 keras(张量流)模型?
- c++ - 通过 bash 脚本进行 Vscode C++ 调试
- linux - 如何防止gtk重绘整个GtkDrawingArea?
- ssl - 解决 boost.asio certificate failed 错误-without- access to source code,找出Philips Hue Bridge共享哪些信息
- apache-spark - 带有窗口函数的 PySpark 数据偏度
- node.js - 我的获取请求不起作用,但将其更改为帖子有效
- pandas - 如何在不使用 if 语句的情况下通过使用 True 和 False 检查多列来返回一列
- python - 如何选择 NumPy 数组的某个部分,然后选择下一部分?
- ios - 遵循 Apple 指南的 SwiftUI 简单问题
- javascript - 如何设置基本身份验证、内容类型和数据以在 axios 发布请求中发送?