我的对象是按照[{},{},{}]
状态变量构造器如下:
this.state:{...some states,
parsed:[{}]}
每个对象都来自具有异步功能的get IPFS
:
IPFSREADER = element => {
ipfs.cat(convertedIPFSaddress).then(result => {
let cons = result.toString('utf8')
const consdata = JSON.parse(cons);
// NEED useState save consdata to parsed state
}
当我获取数据时,我正在用useState
将该数据推送到状态,但是我尝试了以下方式:
this.setState({parsed:consdata})
结果:> Object:{some data...}
this.setState({...[parsed],parsed:[consdata]})
结果:[0:Object:{some data...}]
this.setState(parsed => [...data, parsed]);
跟在Joseph D.'s answer之后,但抛出ReferenceError: can't access lexical declaration 'data' before initialization
错误。尝试将此解决方案更改为上面的功能,如下所示:
IPFSREADER = async element => {..
const { data } = await ipfs.cat(...
如何解决此问题?我尝试了许多解决方案,但无法更改结果……谢谢。
答案 0 :(得分:0)
您似乎正在尝试setState({...state, parsed: [...state.parsed, consdata]})