React 从 State 获取价值
React get value from State
完全是 React 的初学者。我有一个后端 API,我正在尝试使用 Axios 发送请求。我有一个盒子,里面有这样的数字:
const [input, setInput] = useState(0);
const [input2, setInput2] = useState(0);
<div>
<label htmlFor="num1">Number 1: </label>
<input type="string" id="num1" name="num1" value={input} onInput={e => setInput(e.target.value)}/>
</div>
<br/>
<div>
<label htmlFor="num2">Number 2: </label>
<input type="string" id="num2" name="num2"value={input2} onInput={e => setInput2(e.target.value)}/>
</div>
这会捕获这些输入中的任何值。
console.log({input})
console.log({input2})
记录这些值会显示我输入的整数。但是,当我尝试在 Axios 请求中访问这些值时,一切都出错了。
const response = await axios
.get("http://localhost:8080/service/", {
params: {
num1: {input},
num2: ({input2})
}
})
我的后端抛出这个异常:
java.lang.NumberFormatException: For input string: "{"input":0}"]
我只想将零传递给我的请求参数,这可能吗?如果是这样,如何实现这一目标?我尝试过以各种不同的方式解析它,但没有任何效果。后端仅在这些参数中取一个数字。
此致。
您不需要将您的状态用大括号括起来。在你写 {input}
的地方,javascript 会自动创建一个新对象 {input: inputValue}
而不是返回你的 input
变量的值。
只需将您的代码更改为:
const response = await axios
.get("http://localhost:8080/service/", {
params: {
num1: input,
num2: input2
}
})
完全是 React 的初学者。我有一个后端 API,我正在尝试使用 Axios 发送请求。我有一个盒子,里面有这样的数字:
const [input, setInput] = useState(0);
const [input2, setInput2] = useState(0);
<div>
<label htmlFor="num1">Number 1: </label>
<input type="string" id="num1" name="num1" value={input} onInput={e => setInput(e.target.value)}/>
</div>
<br/>
<div>
<label htmlFor="num2">Number 2: </label>
<input type="string" id="num2" name="num2"value={input2} onInput={e => setInput2(e.target.value)}/>
</div>
这会捕获这些输入中的任何值。
console.log({input})
console.log({input2})
记录这些值会显示我输入的整数。但是,当我尝试在 Axios 请求中访问这些值时,一切都出错了。
const response = await axios
.get("http://localhost:8080/service/", {
params: {
num1: {input},
num2: ({input2})
}
})
我的后端抛出这个异常:
java.lang.NumberFormatException: For input string: "{"input":0}"]
我只想将零传递给我的请求参数,这可能吗?如果是这样,如何实现这一目标?我尝试过以各种不同的方式解析它,但没有任何效果。后端仅在这些参数中取一个数字。
此致。
您不需要将您的状态用大括号括起来。在你写 {input}
的地方,javascript 会自动创建一个新对象 {input: inputValue}
而不是返回你的 input
变量的值。
只需将您的代码更改为:
const response = await axios
.get("http://localhost:8080/service/", {
params: {
num1: input,
num2: input2
}
})