为了账号安全,请及时绑定邮箱和手机立即绑定

如何在对象数组中的数组中添加元素

如何在对象数组中的数组中添加元素

慕的地8271018 2022-10-27 16:35:22
我收到错误:this.state.questions[key] is not iterable我想optiontext从输入字段推送到options数组this.state = {  sections: [{    key: 1,    value: 1  }],  optionText: '',  questions: [{    id: Math.round(Math.random() * 1000000000000000),    query: '',    sectionId: 1,    selectedType: 1,    options: ['1st option', ],    isChecked: true  }],}addOption = (key) => {  const addtext = this.state.optionText //typed text in input   let option = this.state.questions[key].options; //trying to access array in array of object   this.setState({    questions: [...this.state.questions[key], addtext]  });}<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>  sections: [{ key: 1, value: 1 }],  optionText: '',      surveyTitle: '',      description: '',      questions: [{        id: Math.round(Math.random() * 1000000000000000),        query: '',        sectionId: 1,        selectedType: 1,        options: ['1st option',],        isChecked: true      }],    } addOption = (key) => {    const addtext = this.state.optionText //typed text in input     let option = this.state.questions[key].options; //trying to access array in array of object     this.setState({ questions: [...this.state.questions[key], addtext] });  }
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

提取选项并附加一个值。在使用合并选项拼接新问题之前克隆问题。更新状态。


this.state = {

  sections: [{

    key: 1,

    value: 1

  }],

  optionText: '',

  questions: [{

    id: Math.round(Math.random() * 1000000000000000),

    query: '',

    sectionId: 1,

    selectedType: 1,

    options: ['1st option', ],

    isChecked: true

  }],

}

addOption = (key) => {

  const addtext = this.state.optionText //typed text in input 

  let options = this.state.questions[key].options; //trying to access array in array of object 

  options = [...options, addText];

  const questions = [...this.state.questions];

  questions.splice(key, 1, {...questions[key], options});


  this.setState({

    questions

  });

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>



查看完整回答
反对 回复 2022-10-27
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号