簡體   English   中英

React:如何從外部設置組件的渲染內容?

[英]React: How can I set my components' render content from outside?

我想做這樣的事情(類似於React Bootstrap中的Accordion):

class Foo extends React.Component{
   static Button;
   static Content;

   render(){
      return(
         <div>
            <Foo.Button/>
            <Foo.Content/>
         </div>
      );
   }
}

這樣我就可以像這樣使用它:

function App() {
  return (
     <Foo>
        <Foo.Button>
           <p>this is in the button</p>
        </Foo.Button>
        <Foo.Content>
           <p>this is content</p>
        </Foo.Content>
     </Foo>
  );
}

如何獲得此信息,或者必須搜索什么示例?

您應該通過props傳遞想要的內容。 例如,

 return (
     <Foo>
        <Foo.Button>
           <p>{this.props.buttonText}</p>
        </Foo.Button>
        <Foo.Content>
           <p>{this.props.content}</p>
        </Foo.Content>
     </Foo>
  );

您可以執行以下操作:

class Foo extends React.Component {
  static Button;
  static Content;

  render() {
    return (
      <div>
        <Foo.Button />
        <Foo.Content />
      </div>
    );
  }
}

Foo.Button = props => {
  const { children, ...rest } = props;

  <button {...rest}>{children}</button>;
};

Foo.Content = props => {
  const { children, ...rest } = props;

  <div {...rest}>{children}</div>;
};

export default Foo;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM