【发布时间】:2021-06-09 18:52:28
【问题描述】:
我理解组件的链接可以通过在每个文件中包含功能组件并在每个父级别导入组件来完成。
例如 A 进口 B 进口 C
假设我们有这 3 个文件 App.js、Home.js 和 HomeContainer.js
App 导入 Home 的地方导入 Homecontainer
App.js
import './App.css';
import HomeContainer from './containers/HomeContainer';
function App() {
return (
<div className="App">
<HomeContainer/>
</div>
);
}
export default App;
HomeContainer.js
import Home from "../components/Home";
function HomeContainer(props) {
return (
<div>
<Home/>
</div>
)
}
export default HomeContainer
Home.js
import React from 'react';
function Home(props) {
return (
<div>
<h1>Home</h1>
</div>
)
}
export default Home;
到目前为止,一切都还好,但可以说,我没有为 HomeContainer 创建一个函数组件,而是直接导出了 Home 组件,即使这样我也看到它正在工作。
HomeContainer.js 变为
import Home from "../components/Home";
export default Home
我想知道这到底是如何工作的,因为 APP.js 正在渲染 HomeContainer 组件,但 HomeContainer 组件没有渲染像<Home/> 这样的东西,但 Home 组件仍然在 APP.js 中渲染。
我希望 App 渲染第一个功能组件 HomeContainer,然后再渲染 Home 组件。但是即使我们不创建功能组件并直接导出它,当我们的 HomeComponent 甚至没有使用命令<Home/> 渲染它时,它也会在 App.js 中渲染为 Home 组件。
HomeComponent.js 中的导出默认值如何在父 App.js 中渲染组件 Home
【问题讨论】:
-
HomeContainer不使用它的导入。那是错字吗?您的意思是使用<h1><Home /></h1>吗?因为现在,Home和HomeContainer具有相同的内容,因此很难判断实际呈现的是什么。 -
是的,已编辑代码,问题是否清楚,还是您要我添加更多详细信息?
-
"HomeContainer 组件没有呈现像
这样的东西" 根据您的编辑, HomeContainer正在调用呈现该组件的<Home/>。所以我不确定你的问题到底是什么。 -
你能检查一下
Up until now@AlexWayne之后的第二部分吗 -
现在看到我正在从 homecontainer 将 home 导出到 App,但我并没有像
<Home/>从 homecontainer 渲染它,即使这样,当我们的 App js 实际上想要时,仅通过导出它就可以渲染该组件渲染 Homecontainer 但 homecontainer 没有渲染任何东西
标签: javascript reactjs jsx react-component react-functional-component