Javascript 如何在包装函数中使用array.map并返回映射的数组?
我可能有一个明显的问题,但我解决它有困难。我想在函数Javascript 如何在包装函数中使用array.map并返回映射的数组?,javascript,reactjs,Javascript,Reactjs,我可能有一个明显的问题,但我解决它有困难。我想在函数ShowStoryListView中映射故事数组mappedArray,并返回mappedArray。该函数将道具作为包含故事的输入 但是,当我尝试执行该函数时,会出现以下错误: Uncaught TypeError: story.map is not a function 当我在ShoWStoryListView之外使用mappedArray时,它会以某种方式工作。我想知道为什么它在函数内部不工作 我很高兴有任何澄清。使用函数ShoWSto
ShowStoryListView
中映射故事数组mappedArray
,并返回mappedArray
。该函数将道具
作为包含故事
的输入
但是,当我尝试执行该函数时,会出现以下错误:
Uncaught TypeError: story.map is not a function
当我在ShoWStoryListView
之外使用mappedArray
时,它会以某种方式工作。我想知道为什么它在函数内部不工作
我很高兴有任何澄清。使用
函数ShoWStoryListView({story}){
或const{story}=props
?如果story.map
不是函数,那么story
就不是数组。记录它以了解它是什么。
function ShoWStoryListView (props) {
const story = props
const mappedArray = story.map((story, index) => (
<MDBRow id={index} key={story.id} style={{ margin: '10px', display: 'inline-block' }}>
<MDBCol>
<MDBCard style={{ width: '22rem' }}>
<MDBCardImage className="img-fluid" src={pic} waves />
<MDBCardBody>
<MDBCardTitle>Title: {story.title}</MDBCardTitle>
<MDBCardTitle>Place: {story.place}</MDBCardTitle>
<MDBCardTitle>Author: {story.author.username}</MDBCardTitle>
<MDBCardText>{story.content}</MDBCardText>
<audio controls src={story.audio.url}>
Your browser does not support the
<code>audio</code> element.
</audio>
{story.story_owner_permission === true ? <MDBBtn href="#">Click me</MDBBtn> : null}
<Link
to={`/story/${story.id}`}
className="badge badge-warning"
style={{ marginLeft: '100px' }}
>
Details
</Link>
</MDBCardBody>
</MDBCard>
</MDBCol>
</MDBRow>
)
)
return (
{mappedArray}
)
}