Reactjs onSubmit不适用于多行文本输入
我使用的是一个texfield,当按下enter键时,它会清除输入的文本,它会触发onSubmit函数,但由于某些原因,当Multline设置为true时,onSubmit不起作用Reactjs onSubmit不适用于多行文本输入,reactjs,material-ui,Reactjs,Material Ui,我使用的是一个texfield,当按下enter键时,它会清除输入的文本,它会触发onSubmit函数,但由于某些原因,当Multline设置为true时,onSubmit不起作用 import React, { useRef } from "react"; import "./styles.css"; import TextField from "@material-ui/core/TextField"; export defaul
import React, { useRef } from "react";
import "./styles.css";
import TextField from "@material-ui/core/TextField";
export default function App() {
const inputRef = useRef();
const addMessage = e => {
inputRef.current.value = "";
};
return (
<form onSubmit={addMessage}>
<TextField
// multiline="true"
inputRef={inputRef}
multiline="true"
id="filled-basic"
label="Filled"
variant="filled"
/>
</form>
);
}
import React,{useRef}来自“React”;
导入“/styles.css”;
从“@material ui/core/TextField”导入TextField;
导出默认函数App(){
const inputRef=useRef();
const addMessage=e=>{
inputRef.current.value=“”;
};
返回(
);
}
我还添加了一个codesandbox,其中的代码使其更简单Material UI component TextField为多行使用布尔值。设置multiline={true}或只包括multiline,如中所示:
<TextField
inputRef={inputRef}
multiline
id="filled-basic"
label="Filled"
variant="filled"
/>
有关更多信息,请参见:根据物料界面的文档:
多行属性将文本字段转换为textarea或textarea AutoSize
multiple
prop提供一个布尔值
ref
并将高度设置为auto
导出默认函数App(){
const inputRef=useRef();
const addMessage=e=>{
控制台日志(“hi”);
inputRef.current.getElementsByTagName(“textarea”)[0]。value=“”;
};
const handleKeyDown=事件=>{
if(event.which==13){//Multline正在工作,问题是当按下enter键时,它不会调用onSubmit,而是转到一个新行。这很完美,谢谢你的解释,只是好奇按下enter键时,文本字段不会立即调整大小,它仍然很大,有没有办法修复@gdhupdated答案…使用相同的代码和框链接(仅刷新页面)感谢您的回复,非常感谢,您能向我解释一下您是如何解决resizeno问题的……我们可以使用ref
调整大小,并将height
调整为auto…回答中的第3个点。还在代码中留下一些注释。感谢您的回答,这非常有用