【发布时间】:2020-05-31 19:10:34
【问题描述】:
我必须使用 Axios 将 {input} 数据发布到 http://localhost:4000/prediction。但 {input} 变为未定义。
我使用的是 const 而不是 class Main extends 组件。 onChange,它设置表单数据。
const Main = ({ value, suggestions, auth: { user } }) => {
const [formData, setFormData] = useState("");
const [messages, setMessages] = useState([]);
const { input } = formData;
const onChange = e => setFormData(e.target.value);
const onSubmit = event => {
event.preventDefault();
setMessages(prevMsgs => [...prevMsgs, formData]);
console.log({ input });
Axios 帖子。
axios
.post(
`http://localhost:4000/prediction`,
{ input },
{ crossdomain: true }
)
.then(res => {
console.log(res.data);
//setMessages(prevMsgs => [...prevMsgs, formData]);
})
.catch(error => {
console.log(error.message);
});
};
使用 onSubmit、onChange 返回(表单)。
return (
<div className="true">
<br />
<form noValidate onSubmit={e => onSubmit(e)}>
<div className="input-group mb-3">
<input
name="input"
type="text"
className="form-control"
placeholder="Type text"
onChange={e => onChange(e)}
/>
)}
<div className="input-group-append">
<button className="btn btn-outline-secondary">Send</button>
</div>
</div>
</form>
</div>
);
};
【问题讨论】:
-
formData是一个字符串,正如我所见,它没有名为input的属性,您尝试解构它。
标签: javascript node.js reactjs axios