'undefined不是一个对象(评估'props.deviceLocale')

问题描述 投票:0回答:1

我是反应原生的新手。我试图点击提交按钮验证文本字段。但我总是得到错误 -

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>
    )
  }
}

Error snap

有人可以帮我这个吗?

android react-native android-emulator react-native-android
1个回答
0
投票

你甚至在加载组件之前就得到了错误,然后正确绑定你的_onPressButton,然后至少你的组件将正确安装,然后你的即将发生的错误将跟随使用this.validate对我有点模糊,因为我看不到validate组件中的功能。

绑定你的_onPressed,声明如下:

_onPressButton = () => {
  this.validate({
    name: {minlength: 3, maxlength: 7, required: true},
  });
}

由于_onPressed在组件安装完成后立即被调用,因此导致错误。请在评论中告诉我这是否有助于您至少完成组件安装。

编辑:此外,您的构造函数不提供超级构造函数的道具,

声明如下:

 constructor(props) {
   super(props);
   this.state = {
     name: "abc"
   }
 }

希望这可以帮助。快乐的编码。

© www.soinside.com 2019 - 2024. All rights reserved.