Error: animal.image.map is not a function
Error: animal.image.map is not a function
我目前正在使用 mern stack 制作一个避难所网络应用程序,我正在努力显示我的对象的图像。我已经使用了地图,但我认为它仅适用于数组对象。所以我不知道如何在我的动物对象上获得 images.url。
这是我的 animalSchema
const mongoose = require('mongoose')
const animalSchema = new mongoose.Schema({
name: {
type: String,
required: [true, 'Please enter name'],
trim: true,
maxLength: [100, 'The name cannot exceed 100 characters']
},
...
image:
{
public_id: {
type: String,
required: true
},
url: {
type: String,
required: true
},
}
})
module.exports = mongoose.model('Animal', animalSchema);
AnimalReducer
export const animalDetailsReducer = (state = { animal: {} }, action) => {
switch(action.type) {
case ANIMALS_DETAILS_REQUEST:
return {
...state,
loading: true,
}
case ANIMALS_DETAILS_SUCCESS:
return {
loading:false,
animal: action.payload,
}
case ANIMALS_DETAILS_FAIL:
return {
...state,
error: action.payload
}
case CLEAR_ERRORS:
return {
...state,
error: null
}
default:
return state;
}
}
这就是我在前端用来显示动物细节的内容
{animal.image && animal.image.map(img => (
<div key={img.public_id}>
<img className="d-block w-100" src={img.url} alt="" />
显示动物的名称、性别、品种和类型,只有 animal.url 不显示。
您的模式似乎已 animal.image
定义为对象。 Array.prototype.map
只存在于数组,不存在于对象。
> Object.prototype.map
undefined
> Array.prototype.map
[Function: map]
因此您可以删除地图并有条件地渲染 div:
{animal.image && <div key={img.public_id}><img className="d-block w-100" src={img.url} alt="" /></div>}
我目前正在使用 mern stack 制作一个避难所网络应用程序,我正在努力显示我的对象的图像。我已经使用了地图,但我认为它仅适用于数组对象。所以我不知道如何在我的动物对象上获得 images.url。
这是我的 animalSchema
const mongoose = require('mongoose')
const animalSchema = new mongoose.Schema({
name: {
type: String,
required: [true, 'Please enter name'],
trim: true,
maxLength: [100, 'The name cannot exceed 100 characters']
},
...
image:
{
public_id: {
type: String,
required: true
},
url: {
type: String,
required: true
},
}
})
module.exports = mongoose.model('Animal', animalSchema);
AnimalReducer
export const animalDetailsReducer = (state = { animal: {} }, action) => {
switch(action.type) {
case ANIMALS_DETAILS_REQUEST:
return {
...state,
loading: true,
}
case ANIMALS_DETAILS_SUCCESS:
return {
loading:false,
animal: action.payload,
}
case ANIMALS_DETAILS_FAIL:
return {
...state,
error: action.payload
}
case CLEAR_ERRORS:
return {
...state,
error: null
}
default:
return state;
}
}
这就是我在前端用来显示动物细节的内容
{animal.image && animal.image.map(img => (
<div key={img.public_id}>
<img className="d-block w-100" src={img.url} alt="" />
显示动物的名称、性别、品种和类型,只有 animal.url 不显示。
您的模式似乎已 animal.image
定义为对象。 Array.prototype.map
只存在于数组,不存在于对象。
> Object.prototype.map
undefined
> Array.prototype.map
[Function: map]
因此您可以删除地图并有条件地渲染 div:
{animal.image && <div key={img.public_id}><img className="d-block w-100" src={img.url} alt="" /></div>}