私はこのコードを持っています。私はSemantic UIからいくつかのコンポーネントをインポートしました。React - これはコンポーネントへの関数のバインド時には未定義です
import React from 'react'
import { Card, Image, Grid } from 'semantic-ui-react'
画像を読み込むときにエラー(404)が表示されたら、関数を呼び出そうとしています。
export default class HotelCards extends React.Component {
// constructor
constructor(props){
super(props)
this.handleError = this.handleError.bind(this);
}
// state
state = {}
これは私が呼び出すしたい機能です。(私は内部this
を記録した場合、私は現在のクラスのインスタンスを取得する機能をレンダリングしないこと)
handleError() {
console.log(this);
}
render() {
if (!this.props.hotels) return null;
return (
<Grid doubling stackable columns="4" className="cards-container">
{
this.props.hotels.map(function(e, i) {
return (
<Grid.Column key={i} className="card-column">
<Card>
この要素から:
<Image src={e.hotel.image} onError={this.handleError} />
</Card>
</Grid.Column>
)
})
}
</Grid>
);
}//render
}//class
this
はundefined
です。このため、私のアプローチは、私がきちんとコンポーネントにこの機能をバインドするにはどうすればよい
<img src="image.png" onError="this.onerror=null;this.src='/placeholder.jpg';" />
だろうJavaScriptのバニラで
TypeError: this is undefined
Stack trace:
render/<@http://localhost:1337/app/bundle.js:63883:92
...
?クラスのメソッドとして
私はあなたが矢印関数を 'map'に渡していないことに気づいたので、' this'の現在の値は失われています! –