1

我正在使用以下代码开发消息传递应用程序:

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。我怎样才能解决这个问题?

4

0 回答 0