我的状态上有以下变量:
this.state = {
playerList: {
player: [
{
playerAlias: [
{
name: null
}
],
idPlayer: null,
playerName: null,
broadcastChannel: null,
clusterName: null
}
]
}
}
我想在我的playerAlias列表中添加一个playerAlias,然后执行此方法:
insertAliasToList = () => {
let insertedAlias = {
name: this.state.newAlias
}
this.setState(prevState => ({
...prevState,
playerList: {
...prevState.playerList,
player: {
...prevState.playerList.player,
playerAlias: [...prevState.playerList.player.playerAlias, insertedAlias]
}
}
}))
}
但是,发生此错误: Uncaught TypeError:传播非可迭代实例的无效尝试
谢谢。
答案 0 :(得分:1)
这是因为您正在为数组使用对象语法。在这一行:
playerAlias: [...prevState.playerList.player.playerAlias, insertedAlias]
prevState.playerList.player
是一个数组,因此不能在其上使用点符号。如果要向
playerAlias: [...prevState.playerList.player[0].playerAlias, insertedAlias]