我不知道如何在基本的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”。
答案 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);
}