【发布时间】:2021-09-23 07:59:31
【问题描述】:
我有一个状态:
const [userName, setUserName] = useState('');
接下来,我将TextInput 设为:
<TextInput style={styles.value}
keyboardType={'default'}
placeholder={'Your Name'}
value={userName}
editable={true}
onChangeText={(value) => {
setUserName(value)
}} />
按钮的onPress 事件我正在调用这个函数:
function saveButtonPressed() {
alert("The Value of Name is " + userName);
}
问题是我可以在文本字段中看到 vvalue 正在更新,但在 alert 中我仍然看到 '',如果我再次保存 coe,它会显示更新后的值。
【问题讨论】:
-
alert 可能有问题,使用 console.log 签入控制台即可
-
@DeveloperAmit 我做了,还是一样,打印的是旧值。
-
你在哪里调用 saveButtonPressed 函数?
-
@GuruparanGiritharan 我在导航栏中有一个按钮。我设置为:
useFocusEffect( useCallback(() => { navigation.setOptions({ headerRight: () => (<TouchableOpacity style={styles.navRightButton} onPress={() => { saveButtonPressed() }}><Text>Save</Text></TouchableOpacity>),})}, [navigation])); -
在这种情况下,将 userName 变量作为依赖项与导航一起传递到 useFocusEffect 挂钩