reactjs - 动态数据未在浏览器上呈现
问题描述
美好的一天,我正在尝试使用 react-redux 创建一个 MEARN 堆栈应用程序。我已经能够将数据发布到我的 MongoDB 地图集,并且我还能够获取数据并 console.log 它。但是当我尝试将数据呈现到我的前端时,浏览器会返回一个空页面。我想知道是什么导致了这个问题。这是我第一次创建 React 应用程序。
import './Experience.css';
import Post from './Posts/Post';
import { Grid, CircularProgress } from '@material-ui/core';
import { useSelector } from 'react-redux';
function Experience() {
const posts = useSelector((state) => state.posts);
console.log(posts); //Logged my data on DevTool -> Console (see image below)
return (
!posts.length ? <CircularProgress /> : (
<Grid container alignItems="stretch" spacing={3}>
Test //view browser
{posts.map((post) => (
<Grid key={post._id} item xs={3} >
<Post post={post} />
</Grid>
))}
</Grid>
)
);
}
export default Experience;
import React from 'react';
import { Card, CardActions, CardContent, CardMedia, IconButton, Typography, CardHeader, Avatar } from '@material-ui/core';
import MoreVertIcon from '@material-ui/icons/MoreVert';
const Post = ({ post }) => {
return (
<Card>
<CardMedia image={post.companyLogo} />
<CardHeader
avatar={
<Avatar aria-label="recipe">
<img href={post.employerImage}/>
</Avatar>
}
action={
<IconButton aria-label="settings">
<MoreVertIcon />
</IconButton>
}
title={post.employerName}
subheader={post.jobTitle}
/>
<CardContent>
<Typography variant="body2" color="textSecondary" component="p">{post.responsibility.map((tag) => `️${tag} `)}</Typography>
</CardContent>
<CardActions>
<Typography variant="body2" color="textSecondary" component="p">{post.employedDate}</Typography>
</CardActions>
</Card>
);
}
export default Post;
解决方案
由于您从数据库获得响应,因此必须存在渲染错误。快速浏览一下,我发现您误用了该Avatar
组件。
它应该是这样的:<Avatar alt="recipe" src={post.employerImage} />
或者如果你想使用children
道具,img 标签src
不需要href
:
<Avatar aria-label="recipe">
<img src={post.employerImage}/>
</Avatar>
推荐阅读
- scala - 如何用同一数据框中其他列的实际列值替换一列中的字符串值?第2部分
- go - “pq:抱歉,客户端太多” - 使用 Scan(),关闭行,但在某处出现连接泄漏
- python - 使用 splat 函数和 for 循环传递多个函数参数
- jquery - 需要建议,因为我正在尝试在 asp.net 上使用拖放网格以及引导模式
- java - 检查特定字符的正则表达式
- java - 微服务项目的 Gradle 依赖管理
- javascript - 如何创建交叉淡入淡出,以便我可以使用 javascript 调用 css 中的关键帧?
- intellij-idea - IntelliJ IDEA 在启动时冻结 | 插件开发
- sed - 如何替换谷歌云存储中大文件的字符串?
- android - 进程意外退出。AAPT2 aapt2-3.4.2-5326820-windows Daemon #0: Daemon 启动失败问题