【发布时间】:2020-06-07 23:40:46
【问题描述】:
在以下简化示例中,用户使用 TextInput 更新标签状态,然后单击标题中的“保存”按钮。在提交函数中,当请求标签状态时,它返回原始值 '' 而不是更新后的值。
需要对导航标题右键按钮进行哪些更改才能解决此问题?
注意:当保存按钮在渲染视图中时,一切都按预期工作,只是在标题中时不是。
import React, {useState, useLayoutEffect} from 'react';
import { TouchableWithoutFeedback, View, Text, TextInput } from 'react-native';
export default function EditScreen({navigation}){
const [label, setLabel] = useState('');
useLayoutEffect(() => {
navigation.setOptions({
headerRight: () => (
<TouchableWithoutFeedback onPress={submit}>
<Text>Save</Text>
</TouchableWithoutFeedback>
),
});
}, [navigation]);
const submit = () => {
//label doesn't return the updated state here
const data = {label: label}
fetch(....)
}
return(
<View>
<TextInput onChangeText={(text) => setLabel(text) } value={label} />
</View>
)
}
【问题讨论】:
标签: react-native react-navigation react-navigation-v5