因此返回一个 JSX 必然使函数成为一个组件?

我有简单的代码,我有一个名为 Feed 的组件和一些道具。


在名为 Articles 的主要内容组件上,我通过一个 js 对象映射并返回 Feed 组件


现在,每个人都在使用匿名函数来这样做。


<div>

{data.map(()=> <Feed/>))} (sorry if the syntax a bit wrong but you get the idea

</div>

现在,我在 map 函数之外获取了返回 Feed 的函数


function createFeed (feedData) {

   return <Feed props/>

}

并把它


<div>

{data.map(createFeed)} 

</div>

它很奇怪,但是,因此 createFeed 也是一个组件(所以我需要将名称更改为 CreateFeed)或者这只是一个将对象返回到由 map 函数创建的新数组的函数,因此它只是一个函数而不是一个组件?


UYOU
浏览 98回答 1
1回答

慕后森

这里没有魔法。<div>{data.map(createFeed)}</div>相当于:<div>{&nbsp;data.map(item&nbsp;=>&nbsp;createFeed(item)&nbsp;}</div>由于该createFeed函数在不添加任何逻辑的情况下返回组件,因此您可以省略它并返回组件。全部都是一样。编辑:在您的情况下,您只是将该功能用作工厂,而不是功能组件,因此您可以争辩说它不需要大写。也就是说,如果您确定不会将该函数用作 Jsx 中的组件,那么这不是问题。如果您想将它用作 Jsx,这会导致问题,记录在此处: https:&nbsp;//reactjs.org/docs/jsx-in-depth.html#user-defined-components-must-be-capitalized如果拥有工厂功能没有用,我会省略它,但最终选择取决于您。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript