Javascript 我得到了一个“答案”;TypeError:无法读取属性';用户名';“未定义”的定义;每当我尝试访问record.username时
Javascript 我得到了一个“答案”;TypeError:无法读取属性';用户名';“未定义”的定义;每当我尝试访问record.username时,javascript,reactjs,mern,Javascript,Reactjs,Mern,{record.userId.username}它说userId基本上没有uesrname,尽管我在其中引用了一个路由“USER”,它最初包含“username”: MAKECOMMENT函数: const makeComment = async (text,postId)=>{ await fetch('/posts/' + post._id + '/comment',{ method:"put", headers:{
{record.userId.username}
它说userId基本上没有uesrname,尽管我在其中引用了一个路由“USER”,它最初包含“username”:
MAKECOMMENT函数:
const makeComment = async (text,postId)=>{
await fetch('/posts/' + post._id + '/comment',{
method:"put",
headers:{
"Content-Type":"application/json",
},
body:JSON.stringify({
postId,
text
})
}).then(res=>res.json())
.then(result=>{
console.log(result)
const newData = data.map(item=>{
if(item._id==result._id){
return result
}else{
return item
}
})
setData(newData)
}).catch(err=>{
console.log(err)
})
}
我为diplay on应用程序添加javascript的部分。这就是问题似乎出现的地方(我用试错法找到了答案)<代码>{record.userId.username}它说userId基本上没有uesrname,尽管我在其中引用了一个路由“USER”,它最初包含“username”:
{
post.comments.map(记录=>{
返回(
{record.userId.username}{record.text}
)
})
}
{
e、 预防默认值()
makeComment(e.target[0]。值,post.\u id)
}}>
在显示变量之前,需要检查变量是否有值。
试试这个:
post ? post.comments.map(record=>{
return(
<h6 key={record._id} className="textInput"><span style={{fontWeight:"500"}}>{record.userId.username}</span> {record.text}</h6>
)
}) : <></>
post?post.comments.map(记录=>{
返回(
{record.userId.username}{record.text}
)
}) :
如果您的变量有任何值,它将继续映射。您的第二段代码没有开头
。确保您的代码正确添加基本验证:记录?.userId?.username | |“-”
,那么它工作正常吗?它有div。只是这里没有提到它,抱歉。显示了相同的错误:(
post ? post.comments.map(record=>{
return(
<h6 key={record._id} className="textInput"><span style={{fontWeight:"500"}}>{record.userId.username}</span> {record.text}</h6>
)
}) : <></>