我是本机反应的新手。我试图在单击“提交”按钮时验证文本字段。但是我总是会收到错误-
TypeError:未定义不是我的模拟器上的对象(正在评估“ props.deviceLocale”)。
(我正在使用Android模拟器)。
但是我在代码中无处使用'deviceLocale'。我不知道我的代码中是否需要它。
这是我的代码:
import React, {Component} from 'react';
import { View, Text, TouchableOpacity, TextInput } from 'react-native';
import ValidationComponent from 'react-native-form-validator';
export default class App extends ValidationComponent {
constructor() {
super()
this.state = {
name: "abc"
}
}
_onPressButton() {
this.validate({
name: {minlength: 3, maxlength: 7, required: true},
});
}
render() {
return (
<View>
<TextInput
ref = "name"
onChangeText = {(name) => this.setState({name})}
value = {this.state.name}
/>
<TouchableOpacity onPress = {this._onPressButton}>
<Text>Submit</Text>
</TouchableOpacity>
</View>
)
}
}
有人可以帮我吗?
答案 0 :(得分:0)
即使在加载组件之前,您仍会收到错误,然后,请正确绑定_onPressButton
,然后至少正确安装组件,然后再使用{{1} }对我来说有点模棱两可,因为我看不到组件中的this.validate
函数。
要绑定您的validate
,请如下声明:
_onPressed
该错误是由于在安装组件后立即调用_onPressButton = () => {
this.validate({
name: {minlength: 3, maxlength: 7, required: true},
});
}
而引起的。请在评论中让我知道,这是否可以帮助您至少成功地进行组件安装。
已编辑: 另外,您的构造函数不会为超级构造函数提供支持,
像下面这样声明:
_onPressed
希望这会有所帮助。编码愉快。