映射数组返回未定义的值

时间:2019-09-18 11:50:50

标签: javascript arrays reactjs mapping

我正在映射一个称为Tours的数组

   export const tourData = [
  {
    id: 1,
    city: "new york",
    img: "./img/newyork.jpeg",
    name: "new york bridge tour",
    info:
      "Lorem ipsum dolor sit amet consectetur adipisicing elit. Vel,repellendus!"
  },

如下所示

 state={
    tours: tourData
} 
 render(){
    const {tours} = this.state;

    return(
        <section className="tourlist">
          {tours.map(tour => {
              return (
                  <Tour key={tour.id} tour={tour} removeTour={this.removeTour}/>
              )
          })}
        </section>
    )
}

然后我将游览作为道具传递给“游览”组件。

const {id , city , img, name, info} = this.props.tour;
    const {removeTour} = this.props;

webapp运行良好,但是当我对Tour组件进行测试并且将值作为prop传递时

 const props ={
            id : 1,
            city: 'Test City ',
            img: 'Test img',
            name: 'Test name',
            info: 'Test Info'
        }

我遇到类似

的错误
  

无法读取未定义的属性“ id”

但是webapp可以正常工作。 需要一些帮助,在此先感谢

1 个答案:

答案 0 :(得分:5)

在测试中将值传递给Tour组件的props时,您应该这样做

const props = {
  tour: {
    id : 1,
    city: 'Test City',
    img: 'Test img',
    name: 'Test name',
    info: 'Test Info'
  }
};

由于在Tour组件内部,它正在从this.props.tour中读取。