首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用create-react-app时没有提交表单?

为什么使用create-react-app时没有提交表单?
EN

Stack Overflow用户
提问于 2018-12-12 03:29:56
回答 1查看 146关注 0票数 0

在我迁移到使用create-react-app之前,我的google auth按钮工作得很好。当我切换到CRA时,表单并没有提交给服务器,相反,应用程序似乎正在将action属性中的新路径推送到历史记录中。CRA会以某种方式自动禁用表单提交吗?有没有什么办法呢?谢谢!

这是表单:

代码语言:javascript
复制
<form method="get" action="/aoth/google" className="google-form">
      <input type="submit" className="google-login" value="Google+" />
</form>
EN

回答 1

Stack Overflow用户

发布于 2018-12-12 04:08:13

下面是一个简单的代码片段,展示了如何处理表单提交。希望这能有所帮助。

代码语言:javascript
复制
class App extends React.Component {
  constructor() {
    super();
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleSubmit(event) {
    event.preventDefault();
    const form = event.target;
    const data = new FormData(form);
    for (let name of data.keys()) {
      const input = form.elements[name];
      console.log(input);
      console.log(input.value);
    }
    
    fetch('/aoth/google', {
      method: 'GET',
      body: data,
    });
  }

    render() {
      return (
        <form onSubmit={this.handleSubmit} className="google-form">
              <input id="username" name="username" type="text" />
              <input type="submit" className="google-login" value="Google+" />
        </form>
      );
   }
}

ReactDOM.render( < App / > ,
  document.getElementById('root')
)
代码语言:javascript
复制
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>

<div id="root" />

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53731077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档