我在路由发布请求时遇到问题,我需要构建注册表单并将输入从表单发布到mongodb中,我在服务器端制作了路由器并发布了路由,并且工作正常(当我使用邮递员时)
//表格是必填模型
router.route('/').post(function(req,res,next){ res.send(req.body) form.create( {"first_name": req.body.first_name, "last_name": req.body.last_name }) .then(function(data){ res.send(data); console.log(data); }).catch(function(err){console.log(err)}); });
但是我需要从客户端而不是邮递员处将其解雇。在这里我迷路了。我可以做到,但是当我添加onSubmit动作时,它不起作用。而且我需要使用新功能来触发另一件事,而无需重定向到另一页面。如何将this.refs.first_name.value传递给主体,以便我可以使用提取功能?低于反应成分
添加了此JavaScript / JSON代码段
export default class Form extends React.Component { constructor(props){ super(props); this.handleSubmit = this.handleSubmit.bind(this); } handleSubmit(event){ event.preventDefault(); console.log(this.refs.first_name.value); fetch('/', { method: 'post', body: { "first_name": this.refs.first_name.value } }); }; render () { return ( <div id="signup"> <form onSubmit={this.handleSubmit}> <input ref="first_name" placeholder="First Name" type="text" name="first_name"/><br /> <input placeholder="Last Name" type="text" name="last_name"/><br /> <button type="Submit">Start</button> </form> </div> ) } }
我想您的使用方式ref已经过时了。请尝试下面的内容,看看您是否有运气。
ref
export default class Form extends React.Component { constructor(props){ super(props); this.handleSubmit = this.handleSubmit.bind(this); } handleSubmit(event){ event.preventDefault(); fetch('/', { method: 'post', headers: {'Content-Type':'application/json'}, body: { "first_name": this.firstName.value } }); }; render () { return ( <div id="signup"> <form onSubmit={this.handleSubmit}> <input ref={(ref) => {this.firstName = ref}} placeholder="First Name" type="text" name="first_name"/><br /> <input ref={(ref) => {this.lastName = ref}} placeholder="Last Name" type="text" name="last_name"/><br /> <button type="Submit">Start</button> </form> </div> ) } }
这是一个有关文档的链接refs
refs