繁体   English   中英

有没有办法在功能组件中将数据传递给 props.children

[英]Is there a way to pass data to props.children in a functional component

我正在做一个项目,希望能够将数据从组件发送到它的 props.children 组件。 我认为这是使用 class 组件中的渲染道具完成的,但我不知道如何在功能组件中实现它。 这是我想要完成的事情的一个极其简化的版本。 我想根据父级中设置的“编辑”在子级组件中呈现不同的东西。


function Parent({ children }) {
  const [edit, setEdit] = useState(false);
  return (
      <div>
        {"blah blah blah..."}
        <button onClick={()=>{setEdit(!edit)}}>Click</button>
      {children}
      </div>
  );
}

function Child() {
  if (edit === true) {
    return (
      <Parent>
        {"Edit is True"}
      </Parent>
    );
  }

  return (
    <Parent>
      {"Edit is False"}
    </Parent>
  );
}

您必须通过手动克隆元素来生成子组件。

如何将道具传递给 {this.props.children}

这是你需要的吗? 您可以将状态分享给孩子

const Parent = () => {
 const [edit, setEdit] = useState(true);
  return (
    <>
      <div>Hello</div>
      <Child edit={edit} />
    </>
  );
};

const Child = params => {
  return params.edit? (
    <div>Do something if true</div>
  ):
  (
    <div>Do something if false</div>
  )
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM