我創建了一個按鈕標籤數組,現在我希望能夠在點擊時處理每個按鈕,但我不知道如何處理this.handleClickSelection()以便知道哪個標籤已被點擊。ReactJS如何知道點擊哪個標籤?
class Search extends React.Component
{
constructor()
{
super();
this.state = { entries : [], entries_audio : [], }
}
componentWillMount()
{
$.get('https://something', (data) => {
var entriesArray = [];
var entriesAudioArray = [];
for (var i = 0; i < data.stories.length ; i++) {
entriesArray.push(<button className ="entries" key={i} onClick={()=> this.handleClickSelection() } > {data.stories[i].title }</button>);
entriesAudioArray.push(data.stories[i]);
};
this.setState({ indents : entriesArray, entries_audio : entriesAudioArray });
console.log(this.state.entries_audio);
}, 'json');
}
handleClickSelection()
{
alert("this particular button data");
}
//more code below
謝謝。這是工作。你知道爲什麼onClick = {this.handleClickSelection.bind(this,i)}。工作,但onClick = {()=> this.handleClickSelection.bind(這,我)}沒有? – user2419831
這是因爲在第二種形式中,你並沒有調用你的點擊處理函數,「bind」只是返回一個新的綁定函數。如果你想這樣寫,你應該調用你的處理函數:'onClick = {()=> this.handleClickSelection(i)}' – thedude