为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

UYOU 2023-02-24 16:23:26
我有简单的代码,我有一个名为 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 函数创建的新数组的函数,因此它只是一个函数而不是一个组件?
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

这里没有魔法。

<div>{data.map(createFeed)}</div>

相当于:

<div>{ data.map(item => createFeed(item) }</div>

由于该createFeed函数在不添加任何逻辑的情况下返回组件,因此您可以省略它并返回组件。全部都是一样。

编辑:

在您的情况下,您只是将该功能用作工厂,而不是功能组件,因此您可以争辩说它不需要大写。

也就是说,如果您确定不会将该函数用作 Jsx 中的组件,那么这不是问题。如果您想将它用作 Jsx,这会导致问题,记录在此处: https: //reactjs.org/docs/jsx-in-depth.html#user-defined-components-must-be-capitalized

如果拥有工厂功能没有用,我会省略它,但最终选择取决于您。


查看完整回答
反对 回复 2023-02-24
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号