我试图理解它在React Native中是如何工作的。当我使用this.f()时它抛出并出错,但是当我只使用f()时,它并没有。我不知道为什么。
import React, { Component } from 'react'
import {StyleSheet, Text, View } from 'react-native'
class Home extends Component {
state = {
myState: 'a'
}
updateState = () => this.setState({ myState: 'The state is updated' })
render() {
a = 37;
function f() {
return this.a;
}
//var f = this.f;
return (
<View style = {styles.container}>
<Text onPress = {this.updateState}>
{this.state.myState}
</Text>
<Text> {this.f()} </Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
paddingHorizontal: 30,
paddingVertical: 30,
alignItems: 'center'
}
})
export default Home;
答案 0 :(得分:3)
this
函数中的render()
关键字是对Home
实例的引用。 Home
的{{1}}没有属性prototype
,因此您尝试调用f
时会抛出错误。
您声明的函数undefined
在f()
函数范围内(这绝对是一件坏事,但这是一个不同的主题),render()
将被绑定到全局上下文,如果是严格模式,则为未定义。 More here