【发布时间】:2020-01-22 16:20:49
【问题描述】:
我正在尝试渲染组件,但它没有渲染。 我正在使用 Objectkey 循环通过 firebase 实时数据库 它在控制台中显示数据但不渲染组件 帮我解决。
它也显示了一些警告。
警告:函数作为 React 子级无效。如果您返回一个组件而不是从渲染中返回,则可能会发生这种情况。或者您可能打算调用此函数而不是返回它。
class UserPost extends React.Component {
render() {
return (
<div className="userpost">
{firebase
.database()
.ref()
.child("post")
.on("value", snapshot => {
Object.keys(snapshot.val()).map((item, i) => (
<Post
key={i}
title={snapshot.val()[item].title}
username="Edward"
image={snapshot.val()[item].post_img}
comment={
Object.getOwnPropertyNames(
data.comments[snapshot.val()[item].comments]
).length
}
likes={
snapshot.val()[item].likes
? data.likes[snapshot.val()[item].likes].length
: null
}
/>
));
})}
</div>
);
}
【问题讨论】:
-
不确定这种方法是否可行,因为它可能试图呈现 Firebase 承诺,而不是链的最后一部分中的数据。但首先,为您的
.on步骤添加一个返回值,即return Object.keys...。如果仍然无法正常工作,请尝试将 Firebase 数据保存到状态,然后从该数据中渲染您的<Post/>s -
还是不行
-
它还显示了一些警告,例如警告:函数作为 React 子级无效。如果您从渲染返回一个组件而不是
,则可能会发生这种情况。或者您可能打算调用此函数而不是返回它。
标签: javascript reactjs firebase-realtime-database components