reactjs - Reactjs没有在foreach循环中定义渲染视图
问题描述
我正在从中获取数据firebase
并使用 设置数据useState
,但是当我在组件中循环时返回没有查看循环中的任何内容。这是我的代码。
function App() {
const regRef = ref(database, "Tasks/");
const [tasks, setTasks] = useState([{ title: "Task List" }]);
useEffect(() => {
onValue(regRef, (snapshot) => {
snapshot.forEach((childSnapshot) => {
childSnapshot.forEach((task) => {
setTasks((oldTasks) => [...oldTasks, task.val()]);
});
});
});
}, []);
return (
<div className="App">
<div>Rendering data</div>
{tasks.forEach(function (task) {
console.log("rendering value: " + task.title);
return (
<>
<h2>{task.title}</h2>
<h4>{task.description}</h4>
</>
);
})}
</div>
);
}
在这个视图中,只有 Rendering data div,但在console log
我得到了所有的价值
解决方案
问题
forEach
只是迭代它不返回任何东西的数组。这就是为什么你什么都看不到的原因。因为它不返回任何东西
解决
试试这个。因为map
返回一个数组。
{tasks.map(function (task) {
console.log("rendering value: " + task.title);
return (
<>
<h2>{task.title}</h2>
<h4>{task.description}</h4>
</>
);
})}
推荐阅读
- excel - 在 Sharepoint 中打开两个最后修改的文件
- azure - 在将 Redmine 部署为 PaaS 时需要帮助
- javascript - vuejs 在更改时附加不同的输入
- php - 按数字格式拆分数字
- ios - 使用 sceneKit 在 3d 模型上添加 2d 对象
- c# - 存储获取 blob TaskCanceledException
- ios - UITableView 的 Item 向下滚动后改变颜色,然后备份 Swift
- bash - 如何在 bash 文件中尝试并捕获?
- angular - 向 ng-container 添加动画
- html - 在 react-quill 编辑器中直接输入 HTML 标记