【发布时间】:2021-10-09 04:50:40
【问题描述】:
我正在尝试应用以下表单在 React 中提交,但我键入的输入文本字段中没有显示任何内容。因此 onClick 也不会被触发。
我看了很多帖子,但我找不到解决问题的方法,我也是初学者。
<form>
<input
value={input}
onChange={(e) => setInput(e.target.value)}
type="text"
placeholder="Type a message"
/>
<button onClick={sendMessage} type="submit">
Send
</button>
{/* onClick={sendMessage} */}
</form>
sendMessage 定义如下:
function Chat({ messages }) {
const [input, setInput] = useState("");
const sendMessage = async (e) => {
e.preventDefault();
await axios.post("/messages/new", {
message: input,
name: "Abhi",
received: true,
timestamp: "Just Now",
});
setInput("");
};
// below contains the render return () which consists the form shown above.
【问题讨论】:
-
删除
type="submit",因为您已经拥有按钮的点击处理程序 -
或者将
sendMessage移动到表单元素的onSubmit处理程序,即<form onSubmit={sendMessage}> ....。
标签: javascript html reactjs button react-hooks