我试图将一个状态值imagesArray传递给另一个状态tabData,但它是未定义的,PFB代码,请告诉我这里做错了什么?
constructor(props) {
super(props);
this.state = {
imagesArray: [
{
default: '/images/volImage1.png',
active: 'images/volImage1.png'
},
{
default: '/images/volImage2.png',
active: 'images/volImage2-Active.png'
},
{
default: '/images/volImage3.png',
active: 'images/volImage3.png'
},
{
default: '/images/volImage4.png',
active: 'images/volImage4.png'
},
{
default: '/images/volImage5678.png',
active: 'images/volImage5678.png'
},
],
tabData: [
{
title: 'Knowledge and experience',
content: <VolunteerTabContent1 imagesArray={this.state.imagesArray} />
//Here I am passing above imagesArray state, and this is coming as undefined and throwing error
},
{
title: 'Practical and hands on',
content: 'Tab 2 Content'
},
{
title: 'Management and leadership',
content: 'Tab 3 Content'
},
]
}
}
2条答案
按热度按时间vngu2lb81#
设置状态本身时不能使用此. state。这根本不起作用。
在您的示例中,如果imagesArray在执行过程中不会更改,并且您只需要一些数据,则可能不需要将其设置为组件状态的一部分。
您可以将imagesArray定义为类外部的常量或类似的内容,并在设置tabData时引用它。
更重要的是,如果tabData只是你以后需要的数据,但它不会改变,你也不需要把它设置为state。
然后在render方法中你可以做
这样,您将正确地从状态中获取imagesArray。JSX将获取item.content的值(在本例中为VolunteerTabContent1组件)并呈现它。
ttcibm8c2#