我的主要目标是用一个对象数组来设置一个状态,但我不能这样做,因为这个数组会随着推送到它的元素而发生变化。我明白这个问题,但我不知道如何解决它
这是代码,我想用最终的参与者数组来设置状态。有什么想法吗?
const moviesToMap = this.state.movies;
moviesToMap.map(movie => {
return this.state.title === movie.title
? movie.characters.map(person => {
const actorUrl = person;
const actorId = parseInt(actorUrl.slice(31, -1));
let peopleStateCopy = this.state.people;
peopleStateCopy.map(persona => {
const slugState = persona.url;
const slugId = parseInt(slugState.slice(31, -1));
if (slugId === actorId) {
actors.push(persona);
return persona.name;
}
});
})
发布于 2019-05-31 03:24:52
你有很多事情要做--也许你可以重构它?
你的actor数组是在哪里初始化的?您的setState调用在哪里?
在处理处于状态的数组时,您可能希望创建数组的副本-在副本上执行突变-然后在完成时将状态设置为新的数组。
例如:
const moviesCopy = [...this.state.movies];
this.setState({ movies: moviesCopy });
希望这篇文章能帮助你走上正轨。
https://stackoverflow.com/questions/56384399
复制相似问题