React.cloneElement传递道具问题

时间:2020-11-11 13:00:01

标签: reactjs

我正在使用React.cloneElement,因为我想动态地打开模态上的组件。但是由于我想控制样式出现在模式中时的样式,因此决定使用cloneElement。我附上了一个CodeSand演示,它将大致描述我的代码。我的问题是我无法访问传递给克隆元素(在CodeSand example上称为“测试”)的道具。

任何想法为何? 我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

之所以会这样,是因为您用div包装了组件,并且在映射Children时,它将在div元素上而不是Hello组件中添加prop。

这是更新的代码:

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