尝试使用输入数据发送Id时反应获取错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试使用输入数据发送Id时反应获取错误相关的知识,希望对你有一定的参考价值。

尝试将数据发送到我的数据库时,我遇到了一些反应问题。

我有一个团队列表,我想将球员添加到某些球队。我正在尝试从他们添加播放器的特定团队发送用户输入和团队ID的玩家姓名和玩家编号。这是我添加玩家的功能:

  addPlayers() {
    var pname = document.getElementById("playerName").value;
    var pnr = document.getElementById('pnr').value;
    var teamId = document.getElementById('teamId').value;
    console.log(pname + pnr + teamId);
    fetch("http://localhost:8080/api/addPlayer?name="+pname+"&number="+pnr+"&teamId="+teamId);
 }

如果我硬编码播放器名称和号码或我硬编码teamID,这一切都有效。当试图动态获取所有3时,它不起作用。 console.log只返回团队ID,并且在尝试将玩家添加到其他团队时也不会更新。

反射渲染部分:

  this.state.data.map((dynamicData, key) =>
              <div class="black">
              <PanelGroup accordion id="accordion">
                <Panel bsStyle="primary" eventKey="1">
                  <Panel.Heading>
                    <Panel.Title toggle>{dynamicData.name} <i class="fas fa-angle-down"></i></Panel.Title>
                  </Panel.Heading>
                  <Panel.Body collapsible>Add players</Panel.Body>
                  <Panel.Body collapsible>
                  <div id="dynamicInput">
                    <input type="hidden" class="bottomroom" id="teamId" value={dynamicData.id}></input>
                    <input type="text" class="bottomroom" placeholder="Player name" id="playerName"></input>
                    <input type="text" class="bottomroom" placeholder="Player number" id="pnr"></input>
                  </div>
                    <br></br>
                    <button type="submit" onClick={this.addPlayers} class="btn btn-success button"><i class="fas fa-check-circle"></i></button>
                  </Panel.Body>
                </Panel>
              </PanelGroup>

Here is a picture of what it looks like to give you a better understanding


错误:

"Bad Request"
message
:
"Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: """
path
:
"/api/addPlayer"
status
:
400
timestamp
答案

通过查看错误,很明显该字段存在类型不匹配。

我将假设数字字段是int类型你可以尝试跟随或如果它的类型为int的teamid只是为teamid做这个

var pnr = parseInt(document.getElementById('pnr').value);

告诉我们它是否有效。

UPDATE

<input type="text" class="bottomroom" placeholder="Player name" id={"playerName"+key}></input>
<input type="text" class="bottomroom" placeholder="Player number" id={"pnr"+key}></input>

按钮

 <button type="submit" onClick={() => this.addPlayers(key)} class="btn btn-success button"><i class="fas fa-check-circle"></i></button>

并在功能

   addPlayers(key) {
    var pname = document.getElementById("playerName").value;
     var pnr = parseInt(document.getElementById('pnr').value);
    var teamId = document.getElementById('teamId').value;
    console.log(pname + pnr + teamId);
    fetch("http://localhost:8080/api/addPlayer?name="+pname+"&number="+pnr+"&teamId="+teamId);
 }

以上是关于尝试使用输入数据发送Id时反应获取错误的主要内容,如果未能解决你的问题,请参考以下文章

使用片段从数据库 SQLite 获取数据时出错

iMessage 的 AppleScript 错误 - 无法获取文本聊天 ID 的服务

将数据发送回阿波罗服务器时出错(错误请求错误)

尝试从过程中获取数据时:PL/SQL - 数字或值错误

尝试从反应应用程序的本地主机 Web api 端点获取数据 - Cors 错误

来自反应发送不正确(空)值的 Https 请求