Как я могу сравнить две переменные в OnPress? - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь создать экран сменного вывода, и мне не удалось сравнить две переменные, полученные от пользователя (новый вывод и вывод подтверждения).Ошибка показывает мне, что "this.state.newpin" является неопределенным объектом.

class SettingScreen extends Component {
  state = {
    oldpin: '000000',
    newpin: '',
    secpin: ''
}


  onPressButton(){
    if( this.state.newpin == this.state.secpin){
            ToastAndroid.show("Password Changed", ToastAndroid.SHORT);
            this.setState({ oldpin : this.state.newpin})
       }
       else {
            ToastAndroid.show("Password Unmatched", ToastAndroid.SHORT);
       }
    }

  handleNewPin = (text) => {
         this.setState({ newpin: text })
    }

  handleSecPin = (text) => {
         this.setState({ secpin: text })
     }

...

<TextInput onChangeText = {this.handleNewPin} />
<TextInput onChangeText = {this.handleSecPin} />

<TouchableOpacity onPress={this.onPressButton}>
    <Text> Change Password </Text>
</TouchableOpacity>

Я могу получить выходные данные для "this.state.newpin" и "this.state.secpin" от пользователя.Мне просто не удалось выполнить оператор сравнения (OnPressButton ()).

Я новичок в React-Native.

Приносим извинения за неудобства.

1 Ответ

0 голосов
/ 19 января 2019

вам просто нужно связать свой onPressButton() функционал.в конструкторе с этим.и переместите ваше состояние в конструктор, как это;

class SettingScreen extends Component {
    constructor(props) {
        super(props);
        this.state = {
            oldpin: '000000',
            newpin: '',
            secpin: ''
        };
        this.onPressButton = this.onPressButton.bind(this);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...