基于Firestore的Next.js应用使用map方法渲染JSX组件失效求助
问题原因
map方法的回调函数未正确返回JSX元素:当箭头函数使用大括号{}包裹函数体时,必须显式声明return语句才会返回值,否则默认返回undefined,遍历生成的数组全为空值,最终不会渲染任何内容。
解决方案
有两种修正写法可选:
- 改用圆括号包裹JSX,使用箭头函数隐式返回特性:
{chatSnapshot?.docs.map((chat) => ( <Chat key={chat.id} id={chat.id} users={chat.data().users} /> ))}
- 保留大括号写法,添加显式
return语句:
{chatSnapshot?.docs.map((chat) => { return <Chat key={chat.id} id={chat.id} users={chat.data().users} /> })}
额外排查建议
可在map回调内打印单条chat数据的内容,确认id、users等字段取值正常,避免因数据字段缺失导致组件渲染异常。
内容的提问来源于stack exchange,提问作者Servesh Chaturvedi
相关产品推荐
相关产品推荐

