javascript - ReactJS 多次调用同一个实例组件

标签 javascript reactjs

我在 React 中有下一个模态组件:

class Modal extends Component {
 render(){
   return(     
    <div className="modal-content">
      <div className="modal-header">
        { this.props.modalHeader }
      </div>
      <div className="modal-body" className={this.props.className}>
        { this.props.modalBody }
      </div>
      <div className="modal-footer">
        { this.props.modalFooter }
      </div>
    </div>);
  }
}

我是这样使用它的:

 render(){

  return(
        <Modal 
           modalHeader={<ContentComponent getSection='header'/>}
           modalBody={<ContentComponent getSection='body'/>}
           modalFooter={<ContentComponent getSection='footer'/>}
        />
  );
 }

有什么方法可以获取 ContentComponent 的引用并将这个相同的引用传递给 3 个 Prop ?

我试过常量引用,但没有用。

最佳答案

您可以创建一个返回 ContentComponent 的函数

const ccWrapper = (section)=>(<ContentComponent getSection={section}/>)
//later in code
modalHeader={ccWrapper('header')}

如果 ContentComponent 是一个函数,那就更简单了:

modalHeader={ContentComponent({getSection:'header'})}

你也可以让 getSection 由 Modal 设置:

<Modal cc={ContentComponent} />
//in modal
const {cc:ContentComponent} = props;
//...
<div className="modal-header">
  <ContentComponent getSection="header" />

关于javascript - ReactJS 多次调用同一个实例组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57677468/

相关文章:

javascript - 使用 $ ("[property=value]").click(),我想要点击之间的延迟

javascript - .css 函数意外的 token 非法 jquery

javascript - 在javascript中使用for循环选择dom

javascript - 终极版。将状态值传递给 reducer

reactjs - 错误 TS2322 : Property 'css' does not exist on type 'DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>'

javascript - 如何仅在angular5的ngx数据表中选择当前页面的行

reactjs - 将字符串附加到 JSX

reactjs - 使用 useSelector redux hooks

javascript - React JS .map 与 JSON 中的对象同时返回所有数据

javascript - 使用jquery从iframe中的url加载第n个类