React-Next Js - 将数据从输入属性传递到输入值作为 key:value json 到状态

React-NextJs - pass data from input attribute & input value as key:value json to state

我正在尝试通过一个函数设置用户注册状态,该函数 运行 来自表单中的每个输入,并且该函数接收 2 个参数..键和值 键等于输入名称属性,值等于输入值..

当我 运行 这个函数时,函数接收的参数是正确的,但是当我在 setState 中使用 key:value 时,键仍然是“键”并且值正确传递..

这是代码。

    const [userRegister, setUserRegister] = useState(
            {
                "userFirstName":"", 
                "userLastName":"", 
                "userEmail":"", 
                "userPhoneNumber":"", 
                "userPassword":""
            }
        );

    function handleValidation(key, value) {
        console.log(key);
        console.log(value);
        setUserRegister({...userRegister , key:value})
    }
                        <input 
                        type="text" 
                        name="userFirstName" 
                        id="userFirstName" 
                        placeholder="first name"
                        onBlur={(e) => handleValidation(e.target.name, e.target.value)}
                        />

谢谢:)

为了将变量的值替换为对象的键,请使用 []。 例子: setUserRegister({...userRegister , [key]:value})

你要这样尝试:

const [userRegister, setUserRegister] = useState(
            {
                "userFirstName":"", 
                "userLastName":"", 
                "userEmail":"", 
                "userPhoneNumber":"", 
                "userPassword":""
            }
        );

    function handleValidation(e) {
        setUserRegister({...userRegister, 
           [e.target.name]:e.target.value
        });
    }
                        <input 
                        type="text" 
                        name="userFirstName" 
                        id="userFirstName" 
                        placeholder="first name"
                        onBlur={handleValidation}
                        />