簡體   English   中英

在 React js 中導出多個非功能性組件

[英]Exporting multiple non functional components in React js

我正在嘗試創建一個組件 Book,它有一個標題,我希望能夠將它導入 App.js 中,如下面的代碼所示,我對反應還很陌生,我不知道如何查找因為我不知道這個概念是怎么稱呼的。 如何制作組件 Book 並且該組件具有其他非功能性組件,例如用於標題書的 Book.Header 或 Book.Title,並且我可以按照 App.js 中所示使用這些組件

const Book = () => (
  <div className="book">
    <Book.Header />
  </div>
);

Book.Header = ({child}) => (
  <div><p>{child}</p></div> // here should render the text from Book.Header in App.js
);

export default Book;

在 App.js 中

import Book from "./components/Book";
function App() {
  return (
    <div className="App">
      <Book
        <Book.Header>My book header</Book.Header> // I want to render this in 
         // Book.Header 
      >
      </Book>
    </div>
  );
}

它必須是基於類的組件才能擴展該組件的功能,在這種情況下,您的 Book 組件將如下所示:

class Book extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      header: this.props.children // path to children
    };
  }
  render() {
    const { header } = this.state;
    return (
      <div>
        <Book.Header header={header}/>
      </div>
    );
  }
}

Book.Header = ({header}) => (
  <div>
    <p>{Header}</p>
  </div>
);

書籍和標題

const Book = () => (
  <div className="book">
    <Book.Header />
  </div>
);

Book.Header = () => (
  <div><p>This is the header</p></div>
);

module.exports = { Book, Header };

和 App.js

const Book = require = ("./components/Book");
function App() {
  return (
    <div className="App">
      <Book.Book
        <Book.Header>My book header</Book.Header>
      >
      </Book.Book>
    </div>
  );
}

嘗試這個。 我不完全確定 require 部分是否適用於 React,但它適用於我的 Node 應用程序。 如果它不起作用,請查看如何通過“module.exports = ...”方式導入導出的模塊:)

暫無
暫無

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

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