Javascript 尝试在中设置PROPS时出现未定义的错误

Javascript 尝试在中设置PROPS时出现未定义的错误,javascript,reactjs,jestjs,enzyme,Javascript,Reactjs,Jestjs,Enzyme,我试图用Ezyme编写测试,但每次传入setProps方法时,我都会得到一个错误:TypeError:无法读取未定义的属性“map”。这让我感到困惑,因为.map是在props上调用的,据我所知,在下面的setProps函数中正确定义了props。如果定义了setProps,为什么会出现此错误?如何修复它 beforeEach(() => { const wrapper = shallow(<Map />); }) describe('<Map />',

我试图用Ezyme编写测试,但每次传入setProps方法时,我都会得到一个错误:TypeError:无法读取未定义的属性“map”。这让我感到困惑,因为.map是在props上调用的,据我所知,在下面的setProps函数中正确定义了props。如果定义了setProps,为什么会出现此错误?如何修复它

beforeEach(() => {
    const wrapper = shallow(<Map />);
})

describe('<Map />', () => {
    it('should render some stuff', () => {
        wrapper.setProps({ stories: [{id: 1, title: "hello world", edit: true}] })
    });
});
beforeach(()=>{
常量包装器=浅();
})
描述(“”,()=>{
它('应该呈现一些东西',()=>{
setProps({stories:[{id:1,标题:“helloworld”,edit:true}]})
});
});
该组件是:

import React, { Component } from 'react';

class Map extends Component {

    state = {
        edit: true
    }

    render() {
        let layout = (
            <div>
                { this.props.stories.map((story, index) => {
                    return story.edit ? 
                    <div key={story.id}>
                        <br/>
                        <input type="text" defaultValue={story.title} ref="stuff2" /><button name="Save" onClick={this.props.handleToggle} value={story.id}>Save</button> 
                        <br/>
                    </div>
                    : 
                    <div key={story.id}>
                        <br/>
                        <div ref="1">{story.title}<button key={story.id} onClick={this.props.handleToggle} value={story.id}>Edit</button><button onClick={this.props.handleDelete}>Delete</button></div>
                        <br/>
                    </div>
                 })}
            </div>
            )

        return (
            <div>
                {layout}
            </div>
        );
    }
}
import React,{Component}来自'React';
类映射扩展组件{
状态={
编辑:真
}
render(){
让布局=(
{this.props.stories.map((故事,索引)=>{
返回story.edit?

拯救
:
{story.title}编辑删除
})} ) 返回( {layout} ); } }
您确定要在阵列上调用
.map
<代码>道具是一个对象。如果您试图在阵列道具上进行映射,则需要确保正确定位该道具

您确定要在阵列上调用
.map
<代码>道具是一个对象。如果你试图映射一个道具,它是一个数组,你需要确保你正确地定位它。请检查react是如何与酶一起工作的,因为生命周期是如何工作的,这个.props.stories最初将是未定义的

因此,在测试中使用
setProps
之前,对于初始渲染,没有任何内容作为
stories
传递


componentWillMount,render将发生=>render引发错误,因为您试图在未定义的集合上进行迭代

请检查react如何与酶一起工作,
由于生命周期的工作方式,this.props.stories最初将
未定义

因此,在测试中使用
setProps
之前,对于初始渲染,没有任何内容作为
stories
传递


componentWillMount,render will occurrent=>render会引发一个错误,因为您试图在未定义的集合上迭代

我发现了它。由于this.props是在render函数中调用的,而不是在return语句中调用的,所以在每次hooki发现它之前,它都会使用。因为this.props是在render函数中调用的,而不是在return语句中调用的,所以它在每个钩子之前都会遇到这个错误