无法映射带键标识的对象数组,求排查解决方法
问题解决方法
你的代码问题出在map的回调函数上——用大括号包裹函数体但没返回组件,导致map执行后没有生成可渲染的元素数组,自然看不到预期的列表。
修正方案有两种:
方案1:使用箭头函数隐式返回(去掉大括号)
直接把组件写在箭头函数后,不用加{}和return,箭头函数会自动返回该组件:
{posts.map((post) => <PostList id={post.id} key={post.id} username={post?.data?.username} profileImage={post?.data?.profileImage} postImage={post?.data?.postImage} description={post?.data?.description} /> )}
方案2:在大括号内显式添加return语句
如果需要在回调里写额外逻辑(比如打印日志、数据处理),保留大括号的话必须手动return组件:
{posts.map((post) => { // 可在此添加其他逻辑,比如打印当前post数据 console.log('当前post:', post); return ( <PostList id={post.id} key={post.id} username={post?.data?.username} profileImage={post?.data?.profileImage} postImage={post?.data?.postImage} description={post?.data?.description} /> ); })}
另外确认下:你代码里的key={post.id}已经正确放在循环渲染的最外层元素上,这部分是符合React要求的,无需改动。
内容的提问来源于stack exchange,提问作者user1450966
相关产品推荐
相关产品推荐

