表单数据不填写 React
Form data doesn't fill in React
我有一个非常基本的项目,在这个项目中我有一个简单的表单。当我提交此表单时,我将我的数据放入带有附加方法的表单数据中,之后当我在控制台中记录我的表单数据时,它是一个空对象,我很想知道为什么会这样
这是我的代码
import styles from '../styles/Home.module.css'
import {useState} from "react";
export default function Home() {
const [inputs, setInputs] = useState({
name: '',
mobile: ''
});
const changeHandler = (e) => {
setInputs(prev => {
const cloneState = {...prev};
cloneState[e.target.name] = e.target.value;
return cloneState;
});
}
const clickHandler = (e) => {
e.preventDefault();
const formData = new FormData();
formData.append('name', inputs.name);
formData.append('mobile', inputs.mobile);
console.log(formData, 'FD');
}
return (
<div className={styles.container}>
<form>
<input type="text" onChange={changeHandler} name='name'/>
<input type="text" onChange={changeHandler} name='mobile'/>
<button type='submit' onClick={clickHandler}>Submit</button>
</form>
</div>
)
}
先谢谢大家
如果您在控制台中记录 formData 对象,它将记录 formData 对象。您需要调用 'get' 方法来获取值。如果您想从 formData 对象中获取 json,请使用以下代码。
console.log(Object.fromEntries(formData))
FormData
的实例类型不是一个普通的JS对象,而是一个FormData
对象,因此您不能直接登录到控制台。
要查看其条目,您可以这样做:
[...formData.entries()].forEach(e => console.log(e))
与从 formData 获取值相关的问题。
您可以使用 get() 方法或 getAll() 从 formData 获取数据,以便获取数组中具有相同名称的所有值。
要从 formData 获取所有值,您可以像这样使用 for...of 循环。
for (let value of formData.values()) {
console.log(value);
}
希望这对您有所帮助。谢谢)
我有一个非常基本的项目,在这个项目中我有一个简单的表单。当我提交此表单时,我将我的数据放入带有附加方法的表单数据中,之后当我在控制台中记录我的表单数据时,它是一个空对象,我很想知道为什么会这样 这是我的代码
import styles from '../styles/Home.module.css'
import {useState} from "react";
export default function Home() {
const [inputs, setInputs] = useState({
name: '',
mobile: ''
});
const changeHandler = (e) => {
setInputs(prev => {
const cloneState = {...prev};
cloneState[e.target.name] = e.target.value;
return cloneState;
});
}
const clickHandler = (e) => {
e.preventDefault();
const formData = new FormData();
formData.append('name', inputs.name);
formData.append('mobile', inputs.mobile);
console.log(formData, 'FD');
}
return (
<div className={styles.container}>
<form>
<input type="text" onChange={changeHandler} name='name'/>
<input type="text" onChange={changeHandler} name='mobile'/>
<button type='submit' onClick={clickHandler}>Submit</button>
</form>
</div>
)
}
先谢谢大家
如果您在控制台中记录 formData 对象,它将记录 formData 对象。您需要调用 'get' 方法来获取值。如果您想从 formData 对象中获取 json,请使用以下代码。
console.log(Object.fromEntries(formData))
FormData
的实例类型不是一个普通的JS对象,而是一个FormData
对象,因此您不能直接登录到控制台。
要查看其条目,您可以这样做:
[...formData.entries()].forEach(e => console.log(e))
与从 formData 获取值相关的问题。 您可以使用 get() 方法或 getAll() 从 formData 获取数据,以便获取数组中具有相同名称的所有值。 要从 formData 获取所有值,您可以像这样使用 for...of 循环。
for (let value of formData.values()) {
console.log(value);
}
希望这对您有所帮助。谢谢)