将React Native状态设置为Button标题prop

时间:2019-10-16 17:25:03

标签: react-native react-props

我不知道如何在基本的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(feelings)等于“ Excellent”。

2 个答案:

答案 0 :(得分:1)

您可以使用ref,但我认为解决问题的最好方法是将"Excellent"存储在变量中,然后使用onPress={() => updateFormStage(mVariable)}

答案 1 :(得分:1)

一种方法是为您定义的按钮设置参考,然后单击它,然后从参考中检索数据,如下所示:

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

您可以使用 this.button.title 通过按钮引用访问标题:

updateFormStage = () => {
    console.log(this.button.title);
}