javascript - 如何访问多个 javascript 对象?
问题描述
在我的 ReactJs 中,我设置了以下状态:
this.state = {
questionsAnswer: [
{ // first question
question: 'A simple question: ',
options: [ 'Answer1', 'Answer2', 'Answer3'],
answer: 'Answer3',
},
{ // second question
question: 'Second Simple Question',
options: ['Answer1', 'Answer2'],
answer: 'Answer1'
}]}
这是一个类似测验的应用程序,可以检查您的答案。我遇到的问题是我根据“选项”的长度渲染一个元素。为简单起见,让该元素成为 div。当我渲染问题 1 时,渲染了三个 div;在问题 2 中,会呈现两个 div。
我遇到的问题是我无法动态访问对象状态的内部元素,因此我可以渲染 DIV 的数量。例如,我们可以执行 this.state.questionsAnswer[0].options.length 来访问第一个元素的长度并更改索引以获取第二个元素。
根据选项的长度呈现元素的最佳方法是什么?
我尝试的是:
for (let i = 0; i < this.state
.questionsAnswer[0]
.options
.length; i++) { //// render div here }
我应该在 questionsAnswer 中运行另一个循环吗?或者也许是 beforeEach?
我必须提到的另一件事是我试图在 render() 之后访问它{//here }
解决方案
我遇到的问题是我无法动态访问对象状态的内部元素,因此我可以渲染 DIV 的数量。
是的你可以!您可以通过选项映射问题和映射,返回 div。
this.state.questionsAnswer.map(question => {
return question.options.map(option => {
<div>stuff</div>
})
})
推荐阅读
- python - 如何根据列值使用 plotly 分配颜色值?
- flutter - 无法运行 Flutter_blue、BLE 插件的示例应用
- mysql - 无法卸载 mysql 损坏的 mysql / 安装新的 mysql
- r - 有没有办法向 R 包中的函数添加方法?
- excel - 如何根据条件从数组中复制值并将其粘贴到另一个工作表中?
- python - 如何从给定的列表范围生成所有可能的列表,这些列表将针对给定的输入总和
- elasticsearch - 通过 EC2 vpn 隧道将 lambda 连接到另一个 vpc
- react-native - 获取当前页面标题
- javascript - swiper js每个视图多张幻灯片
- netsuite - 在 Suitelet 中并排添加两个子列表