Мой код Классреагируют родное событие onPress не работает в цикле
проблема заключается onPress функция дает следующее сообщение об ошибке, если я использую его в петле
onPress={() => this.onPressButton()}
ничего не происходит, если я использую эту строку кода
onPress={this.onPressButton}
Я знаю, что должен сделать что-то с обязательными, которые я не получаю любезно помочь
export default class PlayGame extends Component {
navigate(routName){
this.props.navigator.push({
name: routName
})
}
onPressButton() {
alert("You tapped the button!");
}
render() {
//var selectedLetter = Globals.URDU_ALPHABETS[Math.floor(Math.random()*Globals.URDU_ALPHABETS.length)]; //will be used when app is MVP
//add selected array
var selectedLetter = Globals.URDU_ALPHABETS[1];
var randLetters = shuffle(randomLetters(Globals.URDU_ALPHABETS,selectedLetter));
playSelectedLetter(selectedLetter.name);
return (
<View style={{flex: 3,backgroundColor: 'silver', flexDirection: 'column', justifyContent:'space-between', alignItems: 'center'}}>
<View style={{width: 400, height: 8, flex: 1, backgroundColor: 'steelblue'}} />
<View style={{flex: 3,backgroundColor: 'silver', flexDirection: 'row', justifyContent:'space-between', alignItems: 'center'}}>
{Object.keys(randLetters).map(function(key,index) {
return <TouchableHighlight key={index} letterName={randLetters[key].name} onPress={() => this.onPressButton()} >
<View style={{width: 50, height: 50, backgroundColor: 'skyblue'}} key={index}><Text key={index} >{randLetters[key].name}</Text></View>
</TouchableHighlight>
}
)}
</View>
<TouchableHighlight onPress={this.onPressButton}>
<Text>Button</Text>
</TouchableHighlight>
<View style={{width: 0, height: 0, backgroundColor: 'skyblue'}}><Text></Text></View>
</View>
);
}
Спасибо, что работает для меня Object.keys (randLetters) .map ((key, index) => { , но как это работает, просто меняя syntex! – muneeb
Функции стрелки меняют контекст этого на внешний масштаб, поэтому в в этом случае область будет классом –