状态的动态数量。状态的数量是动态的,并且取决于这个mppt数,而这个数又取决于用户的输入。我创建了状态,然后在for循环中创建了所有状态之后...我想用它做点什么。我通常会在回调中这样做,但我使用for循环来创建动态数量的状态。这将根据mppt编号设置元素的默认值和数量。之后,它将由onChange进行更新。
const defaultValues = {
1:{
isc: 10.88,
power: 3834.5999999999995,
vmp: 497,
voc: 584.3312579999999,
se: 14,
st: 1,
},
2: {isc: 9.00,
power: 3834.5999999999995,
vmp: 600,
voc: 584.3312579999999,
se: 12,
st: 1},
}
const mppt = 2
.
.
.
componentDidMount(){
console.log('Sizing Mounted?')
for(let i=1 ; i <= mppt ; i++){
console.log(i)
this.setState({ [`${i}`] : defaultValues[i]}, ()=>{
console.log('state been set?')
console.log(this.state[`${i}`]) //this works
})
}
console.log('Check if state has been checked by here to feed into next function')
console.log(this.state[`1`]) // undefined
//This function uses the new set states
this.createElementDefaults() //uses undefined state values
}setStates的异步特性正在扰乱这一点。有什么建议吗?
发布于 2020-12-19 04:32:02
尝试先构建对象,将其设置为状态,然后在回调中使用您的函数:
componentDidMount() {
let s = {};
for (let i = 1; i <= mppt; i++) {
s[`${i}`] = defaultValues[i];
}
this.setState((prevState) => ({ ...s }), () => {
console.log(this.state);
this.createElementDefaults()
});
}https://stackoverflow.com/questions/65363264
复制相似问题