我是反应原生的新手。我试图点击提交按钮验证文本字段。但我总是得到错误 -
TypeError:undefined不是我模拟器上的对象(评估'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>
)
}
}
有人可以帮我这个吗?
你甚至在加载组件之前就得到了错误,然后正确绑定你的_onPressButton
,然后至少你的组件将正确安装,然后你的即将发生的错误将跟随使用this.validate
对我有点模糊,因为我看不到validate
组件中的功能。
绑定你的_onPressed
,声明如下:
_onPressButton = () => {
this.validate({
name: {minlength: 3, maxlength: 7, required: true},
});
}
由于_onPressed
在组件安装完成后立即被调用,因此导致错误。请在评论中告诉我这是否有助于您至少完成组件安装。
编辑:此外,您的构造函数不提供超级构造函数的道具,
声明如下:
constructor(props) {
super(props);
this.state = {
name: "abc"
}
}
希望这可以帮助。快乐的编码。