我有以下代码:
import React, { Component } from 'react';
import { Text, view } from 'react-native';
class LoginForm extends Component {
render() {
return(
<Text style={ styles.errorMessageStyle }>
{this.props.auth.error}
</Text>
);
}
}
const styles = {
errorMessageStyle: {
fondSize: 20,
alignSelf: 'center'
}
};
为什么当我在this
使用style={ this.styles.errorMessageStyle }
时,它会显示错误Cannot read property 'errorMessageStyle' of undefind
。
但当我删除它有效吗?
答案 0 :(得分:2)
this
引用当前对象,显式为LoginForm。您的styles
变量不属于LoginForm
,因此无法使用this
class SomeObject extends Component {
constructor(props){
super(props)
someVariable = "Hello, World"
}
someOtherMethod() {
//...
}
render() {
//...
}
}
const someStyles = {
};
从上面的示例中,您不能使用this
来调用someStyles
,但对于someVariable,它在当前对象的范围内,因此可以使用this
,同样的对象中的someOtherMethod
方法
答案 1 :(得分:1)
因为您的样式对象不在您的班级中,并且使用this
您可以访问您的班级成员。
如果要这样做,您应该在类中定义样式对象。
答案 2 :(得分:0)
因为style
引用了当前对象。您的const styles = {
声明应来自:
this.styles = {
到
this
最后一个必须在你的班级内。
现在,您可以在style
内使用employee_ids
。
答案 3 :(得分:0)
styles
是constant
。和points
到当前实例。
如果styles
是class
返回样式对象的方法,那么您可以使用this.styles()
,但在您的情况下,您将其定义为constant
。< / p>
希望这有帮助。