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
        }
    })