【发布时间】:2019-01-10 09:20:07
【问题描述】:
我正在尝试在另一个对象数组中的一个对象数组中设置一个状态。我尝试了很多东西,但我找不到好的解决方案。
这是我的数组:
this.state = {
Pages: [
{
image: undefined,
audio: undefined,
audioName: undefined,
subtitles: 'up',
Langs: [
{
lang: 'fr_FR',
text: '',
}
]
}
]
};
我想修改 this.state.Pages[i].Langs[y].lang 或 .text 值。 有人有想法吗?
【问题讨论】:
-
你如何设置你的状态?在构造函数内部(或其他任何东西,当创建组件时)或像
setState之类的函数?请注意,setState函数在一层嵌套对象上工作。 -
带有setState函数。那么如何在我的数组中直接设置一个对象Langs?
-
真的是这样吗??只有一层嵌套
-
有点复杂。从 pages 数组中获取您需要修改的那个和它的索引。然后在
Langs数组中使用array.map(),并在该回调中使用条件逻辑返回相同的语言对象或具有新文本值的修改对象。最后添加创建一个新的 pages 数组,并使用您之前存储的索引将前一项替换为新的(使用array.map创建)。
标签: arrays reactjs object state setstate