我正在制作一个网格,每个网格3列,每个都有一个带有按钮的超大屏幕。
renderProperties = data => {
var properties = []
var propRow = []
data.forEach(function(property,index){
propRow.push(<Col xs={{ size:3, offset: .5}}>
<Jumbotron>
<Image src={require("./images/1.jpg")} fluid rounded />
<b> {property.location} </b>
<div>
<td> <Button variant="info" onClick={()=> this.handleRentProperty(property)}> Rent Property </Button> </td>
</div>
</Jumbotron>
</Col> )
if((index+1)%3 == 0){ // if first in the row
properties.push(<Row>{ propRow }</Row>)
propRow = []
}
})
return (
<Container>
{properties}
</Container>
)
}
handleRentProperty = prop =>{
this.setState({show: true});
//this.setState({rentProperty: prop.location })
}
renderProperties在渲染器中的渲染方式为:
render() {
{this.renderProperties(data)}
}
我不断收到“ TypeError:无法读取未定义的属性'handleRentProperty'”
我尝试像
那样绑定onClick={(e)=> this.handleRentProperty(property, e)}
and
onClick={this.handleRentProperty.bind(this, property)}
and
onClick={this.handleRentProperty(property)}
onClick={()=>this.handleRentProperty.bind(this,property)}
谢谢
答案 0 :(得分:1)
将AuthorFormSet = modelformset_factory(Produkt, fields=('nazwa','ilosc','minimum',), extra=0,
widgets={'nazwa': Textarea(max_length=20)},
labels={'nazwa': 'custom label'})
更改为data.forEach(function(property,index){
箭头函数从其定义的范围中获取data.forEach((property,index) => {
。常规函数根据调用者获取其this
。