Ваш обратный вызов всей карты fido неверен, он должен принимать функцию, вы передаете объект.
this.setState(prevState =>({
fido:[...prevState.fido.map({blockHash: [
...prevState.blockHash,
event.blockHash
]} )]}));
})
Правильный синтаксис: map((current, index, originalArray) => {...})
.
Но я не Не думаю, что вам нужно что-то отображать, я думаю, вам просто нужно расширить массив фидо предыдущего состояния и добавить новый элемент
this.setState(prevState =>({
fido:[...prevState.fido, event.blockHash]
}));
Редактировать 1
Так как fido
is stati c, как вы говорите, я предлагаю вместо этого просто сохранить его свойства в объекте, как вы делаете это с ним в настоящее время как элемент в массиве.
this.state = {
dir:"",
account: '',
name: [],
fido: {
logIndex: [],
transactionIndex: [],
transactionHash: [],
blockHash: []
},
loading: true
}
Теперь при обновлении состояние fido, распространяемое в предыдущем состоянии и массив blockHash
с новым элементом
this.setState(prevState =>({
fido: {
...prevState.fido,
blockHash: [...prevState.fido.blockHash, event.blockHash]
},
}));
OF C, если вы хотите / должны оставить его как есть, вам нужно правильно получить доступ к элементу
this.setState(prevState =>({
fido: [{
...prevState.fido[0],
blockHash: [...prevState.fido[0].blockHash, event.blockHash]
}],
}));