Javascript ES6/React将对象添加到数组
代码中的某个地方存在一个缺陷,如果有人能发现它,我将不胜感激。谢谢 步骤1。反应表单将记录添加到包含两个 变量[电子邮件和名称]Javascript ES6/React将对象添加到数组,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,代码中的某个地方存在一个缺陷,如果有人能发现它,我将不胜感激。谢谢 步骤1。反应表单将记录添加到包含两个 变量[电子邮件和名称] export const AddForm = (props) => { const [ name, setName ] = useState('') const [ email, setEmail ] = useState(''); return ( <div&g
export const AddForm = (props) => {
const [ name, setName ] = useState('')
const [ email, setEmail ] = useState('');
return (
<div>
Name:
<input type="text"
id="name"
onChange={ (event)=> { setName(event.target.value) }} /><br />
Email:
<input type="email"
id="email"
onChange={ (event)=> { setEmail(event.target.value) }}/><br />
<button type="button"
onClick={ ()=> { props.doAdd(name,email) } } >Add</button>
</div>
)
}
输入值后,我的对象数组无法正常执行。例如,allVals[0].name=blank(它应该是name1
)
这里是console.log
使用这个
const doAdd = (n,e) => {
var newData = {name:n,email:e};
setAllVals([...allVals,newData]);
}
将n传递给name->name:n
并将e传递给email->email:e
。在这里,您的姓名和电子邮件是对象的键,n,e是值
类似于
var objExample = {
key1: value1,
key2: value2
};
您可以检查以更好地理解
var newData='{“name”:'+name+',“email”:'+email+'}'代码>未添加新对象。它是一个字符串,因此allVals
将不会有任何属性newData
是一个字符串,因此在数组中的条目周围加上双引号。请尝试var newData={name,email}
。这将为它提供变量的属性名称,然后为它们指定值这是否回答了您的问题@埃米利伯格隆:谢谢你-我把我的数据类型搞混了。@Nelles欢迎你。。。如果答案对你有帮助,请接受/投票。@Nelles,因为newData
是一个字符串,而不是一个对象,通过一些基本的调试应该很容易找到。@Andreas说实话,你是正确的-它没有抛出错误,我被困在上面很长时间了。对不起,这不是一个很好的回答。。。它没有解释错误发生的原因,也没有解释代码如何处理错误。它不必要地将OP函数的参数名更改为完全没有意义的单个字母。
var objExample = {
key1: value1,
key2: value2
};