我正在使用以下代码开发消息传递应用程序:
const MessageCentral = () => {
const [inputText, onChangeText] = useState('');
const [bodyText, updateText] = useState("");
const addMessage = () => {
updateText(bodyText + inputText + "\n" );
}
const pressSend = () => {
addMessage();
}
return (
<SafeAreaView style= {StyleSheet.safeContainer}>
<View style={styles.container}>
<ScrollView
ref={scrollView =>this.scrollView = scrollView}
onContentSizeChange={scrollView.scrollToEnd({animated: true})}
style={styles.messageContainer}>
<Text>
{bodyText.toString()}
</Text>
</ScrollView>
<View style={styles.inputContainer}>
<TextInput
style={styles.messageInput}
onChangeText={text => onChangeText(text)}
value={inputText}
/>
<Button
style={styles.sendButton}
icon = { <Icon
name= "activity"
size={25}
color="blue"
/>
}
onPress={() => {
pressSend();
}}
/>
</View>
</View>
</SafeAreaView>
)
}
在 iOS 模拟器上,当我输入一些没有自动完成的文本并按下发送按钮时,bodyText 会按预期更新。如果我对最后一个单词使用自动完成并按 Enter,则在自动完成之前使用 inputText 更新 bodyText。我怎样才能解决这个问题?