Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ES6/React将对象添加到数组_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript ES6/React将对象添加到数组

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

代码中的某个地方存在一个缺陷,如果有人能发现它,我将不胜感激。谢谢

步骤1。反应表单将记录添加到包含两个 变量[电子邮件名称]

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