'undefined не является объектом (оценка' props.deviceLocale ') - PullRequest
0 голосов
/ 26 марта 2019

Я новичок в реакции-родной. Я пытаюсь проверить текстовое поле при нажатии кнопки «Отправить». Но я всегда получаю ошибку -

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

Ошибка привязки

Может кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 26 марта 2019

Вы получаете сообщение об ошибке даже перед загрузкой компонента, затем правильно привязайте _onPressButton, затем, по крайней мере, ваш компонент будет правильно смонтирован, а затем возникнут следующие ошибки, так как использование this.validate несколько неоднозначно.мне, поскольку я не могу видеть validate функцию в компоненте.

Чтобы связать ваше _onPressed, объявите это как ниже:

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

Ошибка вызывает, поскольку _onPressed являетсявызывается, как только ваш компонент монтируется.Дайте мне знать в комментариях, если это поможет вам продвинуться вперед при монтировании компонентов.

Отредактировано: Кроме того, ваш конструктор не предоставляет реквизиты для супер-конструктора,

Объявите это как ниже:

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

Надеюсь, это поможет.Удачного кодирования.

...