【发布时间】:2021-10-17 07:35:27
【问题描述】:
我试图了解 React HOC 是如何工作的。以下代码将在下面编写,但我不明白为什么它会起作用:
const MyHOC = (WrappedComponent) => {
return (props) => { //these props are the props of a WrappedComponent
return (
<div style={{color: "red", fontSize: "100px"}}>
<WrappedComponent {...props}/>
</div>
)
}
}
export default MyHOC
之后,我在这里使用我的 hoc:
import MyHOC from "../HOC/MyHOC" //hoc
const SomeStuff = (props) => {
return (
<div>
Hello world!!!
{
props.data.map(item => {
return <div>{item}</div>
})
}
</div>
)
}
//our component wrapped with a hoc
export default MyHOC(SomeStuff)
然后,我在这里实现我的组件,它们成功地工作
import SomeStuff from "./COMPONENTS/SomeStuff"
function App() {
const list = ['apple', 'orange', 'lemon']
return (
<div>
<SomeStuff data={list}/>
</div>
);
}
export default App;
在上面编写的代码的第一个 sn-p 中,我们创建了一个以“WrappedComponent”为参数的函数。这个函数返回另一个函数,它以 props 为参数。
我的问题是: 如果我们没有在任何地方声明它们,返回的函数如何知道哪些道具作为参数放置。
我们将一个组件作为参数传递给一个 PARENT 函数,但做出反应后发现我们需要在这个“WrappedComponent”中使用的道具
这怎么可能?
拜托,拜托,请帮我找到答案......
非常感谢您
【问题讨论】:
标签: javascript reactjs closures