установить React Native state для свойства заголовка Button - PullRequest
0 голосов
/ 16 октября 2019

Я не могу понять, как обновить состояние в моем базовом приложении React Native так, чтобы оно совпадало с тем, что есть в заголовке кнопки Button.

Я пытался установить состояние {title}, но это не сработало. Я использую хук useState, поэтому не думаю, что мне нужно использовать «this».

import React, {useState} from 'react';
import { View, Text, Button } from 'react-native';

const StarterForm = () => {
    const [formStage, setFormStage] = useState(1)
    const [feelings, setFeelings] = useState('') 

  console.log(feelings)

  const updateFormStage = () => {
    setFormStage(formStage + 1)
    setFeelings({title})
  }

  switch (formStage) {
    case 1:
      return (
        <View>
          <Text>How are you?</Text>
          <Button title="Excellent" onPress={updateFormStage}/>
        </View>
      )
    case 2: 
        return (
          <Text>This is the case of two</Text>
        )
  }
};

В этом примере я ожидаю, что console.log (чувства) будет равняться "Отлично" после нажатия кнопки.

Ответы [ 2 ]

1 голос
/ 16 октября 2019

Один из способов - установить ссылку для определенной вами кнопки, и после нажатия на нее получить данные из ссылки следующим образом:

<Button ref={ref => { this.button = ref; }} 
   title="Excellent" 
   onPress={this.updateFormStage} />

Вы можете получить доступ к своему заголовку с помощью ссылки на кнопку, используя this.button.title:

updateFormStage = () => {
    console.log(this.button.title);
}
1 голос
/ 16 октября 2019

Вы можете использовать ref для этого, но я думаю, что лучший способ решить вашу проблему - это сохранить "Excellent" в переменной и использовать onPress={() => updateFormStage(mVariable)}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...