【发布时间】:2019-09-27 16:56:55
【问题描述】:
我是 react-native 的新手。我正在通过一个教程构建一个计算器应用程序,我现在正试图设置它,按下一个计算器按钮将记录到该数字或符号的控制台。
当我按下计算器上的一个按钮时,如果我单击 1、4、7 按钮但对 2 也执行 1 和 2,我会在控制台“无法读取未定义的属性 '0'”中收到错误消息,5,8 和 3,6,9 按钮。我认为这意味着 this.buttonPressed 出于某种原因无法处理我的水平数组,或者存在其他问题。
我尝试在构造函数中使用
绑定 buttonPressedthis.buttonPressed = this.buttonPressed.bind(this)
无济于事。
export default class App extends Component {
constructor(){
super()
this.state = {}
}
buttonPressed(text) {
console.log(text)
}
render() {
let rows = []
let nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9,], ['.', 0, '=']]
for(i=0; i<4; i++){
let row = []
for(let j=0; j<3; j++){
row.push(
<TouchableOpacity onPress={() => this.buttonPressed(nums[i]
[j])} style={styles.btn}>
<Text style={styles.btnText}>{nums[i][j]}</Text>
</TouchableOpacity>
)
}
rows.push(<View style={styles.row}>{row}</View>)
}
...
return (
<View style={styles.container}>
...
<View style={styles.buttons}>
<View style={styles.numbers}>
{rows}
</View>
</View>
</View>
);
}
}
【问题讨论】:
标签: react-native react-native-ios