(perdón por el mal inglés) Estoy codificando una aplicación de chat usando React, pero cada vez que intento enviar un mensaje línea por línea (shift + enter para una nueva línea), no funciona. Solo deja espacios. Pero presiono dos veces para shift+enter, funciona Ejemplo: presiono shift+enter una vez:
área de texto:
Line 1 Line 2después de enviar el mensaje:
Line 1 Line 2Presiono shift+enter dos veces (Funciona pero no quiero esto):
área de texto:
Line1 // 1 line blank Line2mensaje:
Line1 Line2Pero odio esto. Por favor ayúdenme :( Aquí está el código:
REACCIONAR:
<textarea onInput={() => autoGrow} onChange={(e) => { setMessage(e.target.value); }} autoComplete="off" onKeyDown={sendMessage} type="text" className="overflow-y-auto rounded-l-2xl outline-none h-12 bg-dark-200 pt-3 text-white pl-4 justify-center resize-none flex items-center" placeholder="Text A Message" id="message-input" style={{ width: "90%", backgroundColor: "#323232" }} > </textarea>JavaScript:
// States let [messages, setMessages] = useState([]), [ message, setMessage ] = useState(""); async function sendMessage(e) { if (e.keyCode === 13 && !e.shiftKey) { e.preventDefault(); if (message.replace(/\s/g, "") === "") { return; } else { let data = { content: message.trim(), createdTimestamp: moment().locale("fr-FR").calendar(), id: generateID(), }; setMessages([...messages, data]); setMessage(""); e.target.value = ""; } } else { setMessage(e.target.value); } }